2017-05-30 47 views
0

我有一張桌子有這個結構。只顯示沒有預設類別的產品

ItemNumber | Category | DefaultCategory 
--------------------------------------- 
1234 | Category 1 | 0 
1234 | Category 2 | 1 
1234 | Category 3 | 0 
ABCD | Category 1 | 0 
ABCD | Category 2 | 0 
YZYX | Category 2 | 0 
YZYX | Category 1 | 0 

我需要獲取所有沒有默認類別的項目。所以在這個例子中,我必須得到 ABCD和YZYX

任何人都可以幫助我,我的SQL應該如何? 這是我最好的嘗試,但這是不正確的。

SELECT [ItemNumber] FROM [Navision4].[dbo].[Danmark$eShopInventCategory] WHERE DefaultCategory = 0 GROUP BY ItemNumber 
+0

T他說的Navision和語法表明你使用的是MS sql server,而不是MySQL。 – Shadow

+0

看看「不存在」或「不在」或如何使用自聯接。 – Shadow

回答

1

你可以使用簡單不在如下

SELECT distinct [ItemNumber] FROM [Navision4].[dbo].[Danmark$eShopInventCategory] 
    Where ItemNumber not in (Select ItemNumber from [Navision4].[dbo].[Danmark$eShopInventCategory] where DefaultCategory = 1) 
+0

令人驚歎的,那有效。非常感謝 –

+0

歡迎玩得開心 –

0
SELECT [ItemNumber] FROM [Navision4].[dbo].[Danmark$eShopInventCategory] WHERE ItemNumber not in (select ItemNumber where DefaultCategory = 1) group by ItemNumber 
1

所以你應該使用不同(一個未使用不當GROUP BY)

那麼你可以使用一個不clasue一個子查詢你有沒有聚集功能

SELECT distinct ItemNumber 
    FROM [Navision4].[dbo].[Danmark$eShopInventCategory] 
    WHERE ItemNumber not in (
    select ItemNumber 
    FROM [Navision4].[dbo].[Danmark$eShopInventCategory] 
    where DefaultCategory <> 0 
)