2017-04-18 80 views
0

此代碼給我重複的結果。此查詢給我重複的數據

SELECT store_sp.Partnumber 
    , store_sp.ID 
    , dbo.installed_sp.Installed_qty 
    , dbo.store_sp.qty 
FROM dbo.store_sp 
INNER JOIN dbo.installed_sp 
    ON dbo.store_sp.PartID = dbo.installed_sp.part_id 
    and store_sp.Partnumber = installed_sp.PartNumber 

我如何解決 https://ibb.co/n38xQk

+4

想到關鍵字'distinct'。 –

+2

如果不瞭解store_SP和installed_SP之間的基數以及兩個表的關鍵字,則提供的任何答案都是「猜測」。雖然不同將刪除重複項,但它隱藏了查詢的潛在問題。如果我不得不猜測重複項是因爲零件可能安裝在不同的日期。並且因此安裝的數量可能似乎重複但在不同的日期。如果您從installed_SP添加其他數據(例如'installed_SP。*'),我相信您會看到它們不是重複的。 – xQbert

+0

另外,您可能會缺少導致重複項的連接條件。 – xQbert

回答

-1

你可能需要一個GROUP BY;

這會將您稱爲'重複項'的行中的數量合計。這是我們可以從您的問題中猜出最好的,所以請儘量提供更多信息...

SELECT store_sp.Partnumber 
    , store_sp.ID 
    , sum(dbo.installed_sp.Installed_qty) AS TotalInstalledQuantity 
    , sum(dbo.store_sp.qty) as TotalQuantity 
FROM dbo.store_sp 
INNER JOIN dbo.installed_sp 
    ON dbo.store_sp.PartID = dbo.installed_sp.part_id 
    and store_sp.Partnumber = installed_sp.PartNumber 
GROUP BY 
    store_sp.Partnumber 
    , store_sp.ID 
+0

對期望的結果進行猜測,但肯定比在這種情況下更好。 – xQbert