2017-06-14 40 views
-1

我想從下面的查詢中獲得不同的shipAddress1。但是它將帶有重複項的shipAddress1返回給我。我做錯了什麼?試圖使用DISTINCT,但不是它消除重複

SELECT DISTINCT 
    Orders.ShipAddress1, 
    Orders.ShipAddress2, 
    Orders.ShipCity, 
    Orders.ShipState, 
    Orders.ShipPostalCode, 
    Customers.CustomerID, 
    Customers.EmailAddress, 
    Orders.OrderDate 
FROM 
    Orders 
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID 
WHERE Orders.OrderDate > '04/10/2014 00:00:00' AND 
GROUP BY 
    Customers.CustomerID, 
    Orders.ShipAddress1, 
    Customers.EmailAddress, 
    Orders.ShipAddress2, 
    Orders.ShipCity, 
    Orders.ShipState, 
    Orders.ShipPostalCode, 
    Orders.OrderDate 
+0

將'GROUP BY'與'DISTINCT'組合起來可能不太好...選擇其中一個。 – ebyrob

+0

所有的資本缺口似乎都不是很好,我建議變成簡單的「皇后」。 – peterh

回答

0

問題是,不同的是要返回不同的所有這些值的集合。如果shipAddress1是相同的,但其他列是不同的,您將獲得兩組數據。如果您希望shipAddress1的值全部不同,則需要將查詢更改爲不涉及所有這些不同選項。

+0

是啊你是對的,這就是爲什麼它返回給我所有的價值,但如果你能幫助我,我應該對我的查詢做什麼改變?我是新來的sql,並陷入了困境。 –

+0

問題是,它不清楚你想要什麼。由於有多個條目具有相同的shipAddress1,您需要哪些條目?我可以幫你重寫查詢,但你必須知道你真正想要的shipAddress1的哪些結果。 – JoshKopen

+0

我想Orders.ShipAddress1, Orders.ShipCity, Orders.ShipState, Orders.ShipPostalCode, Customers.CustomerID, Customers.EmailAddress, Orders.OrderDate –