1

以下は私のテーブルですcompanies

company_id        Status
1001                OFF
1002                OFF
1003                OFF
1003                ON

もしあれば避ける必要がありcompany_idますstatus 'ON'

以下のように出力する必要があります

company_id        Status
1001                OFF
1002                OFF

このクエリの書き方

4

3 に答える 3

3
SELECT Company_Id, Status FROM Companies C 
WHERE NOT EXISTS(SELECT * FROM Companies 
WHERE Company_Id = C.Company_id AND Status = 'ON')
于 2013-03-26T11:34:48.320 に答える
3
SELECT  *
FROM    tableName
WHERE   company_ID NOT IN
        (
            SELECT company_ID 
            FROM    tableName
            WHERE   Status = 'ON'
        )

または使用してLEFT JOIN

SELECT  a.*
FROM    tableName a
        LEFT JOIN
        (
            SELECT company_ID 
            FROM    tableName
            WHERE   Status = 'ON'
        ) b ON a.company_ID = b.company_ID
WHERE   b.company_ID IS NULL
于 2013-03-26T11:34:20.020 に答える
-1
SELECT company_ID, MAX(Status) AS Status FROM companies
GROUP BY company_ID
HAVING MAX(Status) = 'OFF'

MIN 関数と MAX 関数を使用して、文字列値を並べ替えることができます。この場合、MAX は OFF の前に ON に戻ります。

于 2013-03-26T11:38:21.577 に答える