回答
我覺得左加入到家店是你是什麼尋找:
from
ItemDynamic dynamics
inner join Store WITH(NOLOCK) on dynamics.StoreID = Store.ID and store.Inactive = 0
LEFT JOIN Item WITH(NOLOCK) on dynamics.ItemID = Item.ID and Item.ParentItem = 0
LEFT JOIN Sales idsp WITH(NOLOCK) on idsp.ItemID = Item.ID and Item.ParentItem = 0 and idsp.StoreID = dynamics.StoreID
and idsp.Time between '2017-07-16' and '2017-07-31' and idsp.StoreID <> 1001 and Item.ParentItem = 0 and Item.ItemType <> 9
LEFT JOIN Department WITH(NOLOCK) on Department.ID = Item.DepartmentID
LEFT JOIN Category WITH(NOLOCK) on Category.ID = item.CategoryID
LEFT JOIN Supplier WITH(NOLOCK) on Supplier.ID = item.SupplierID
Where
item.ItemLookupCode = '100006C0005' and
-- idsp.Time between '2017-07-16' and '2017-07-31' and idsp.StoreID <> 1001 and Item.ParentItem = 0 and Item.ItemType <> 9
您可能需要添加在where子句
我已經嘗試過你所提到的。它不 –
意味着什麼之後你的輸出? –
仍然輸出相同。 Actullay'Store和ItemDynamic'這兩個表都具有所有storeID,即使我嘗試使用或使用store表我可以帶來結果。我嘗試了與商店表的左連接和內連接。仍然輸出保持不變 –
obviusly它doesen't顯示左數據,因爲在左連接狀況和評論WHERE clausule排除他們
您可以將一個或idsp.Time == 0添加到您的左側右側使用WHERE
Where
item.ItemLookupCode = '100006C0005' and
(idsp.Time between '2017-07-16' and '2017-07-31' and idsp.StoreID <> 1001 and Item.ParentItem = 0 and Item.ItemType <> 9) OR idsp.Time IS NULL
時間是日期時間格式。那麼怎麼能給這樣的'idsp.Time == 0'這樣的 –
值應該是null不是0抱歉,我的錯誤 –
表連接,你不應該把在WHERE子句,因爲這有效將LEFT JOIN變成INNER。
移動你的條件JOIN子句本身:
LEFT JOIN Item ON dynamics.ItemID = Item.ID
AND item.ItemLookupCode = '100006C0005'
AND Item.ParentItem = 0
AND Item.ItemType <> 9
LEFT JOIN Sales idsp ON idsp.ItemID = Item.ID
AND idsp.StoreID = dynamics.StoreID
AND idsp.Time between '2017-07-16' and '2017-07-31'
AND idsp.StoreID <> 1001
添加WHERE條件您的加盟:
LEFT JOIN Sales idsp WITH(NOLOCK)
ON idsp.ItemID = Item.ID
AND Item.ParentItem = 0
AND idsp.StoreID = dynamics.StoreID
AND idsp.Time between '2017-07-16' and '2017-07-31'
AND idsp.StoreID <> 1001
從你的WHERE
try with following code
remove your where clause and put those conditions with your joins
select
dynamics.ItemID,
item.ItemLookupCode,
dynamics.StoreID,
Department.Name Department,
Category.Name Category,
Supplier.Code,
Supplier.SupplierName,
sum(idsp.Qty) SoldQty,
sum(idsp.ExtendedCost) SoldExtCost,
sum(idsp.ExtendedPrice) SoldExtPrice,
dynamics.RestockLevel,
CASE WHEN isNull(sum(idsp.Qty),0) > (dynamics.RestockLevel * 0.75) THEN 'Fast Moving'
WHEN isNull(sum(idsp.Qty),0) > (dynamics.RestockLevel * 0.25) THEN 'Average Moving'
WHEN isNull(sum(idsp.Qty),0) > 0 THEN 'Slow Moving'
WHEN isNull(sum(idsp.Qty),0) = 0 THEN 'No Moving' END AS Moving
from
ItemDynamic dynamics
inner join Store WITH(NOLOCK) on dynamics.StoreID = Store.ID and store.Inactive = 0
LEFT JOIN Item WITH(NOLOCK) on dynamics.ItemID = Item.ID and Item.ParentItem = 0 and item.ItemLookupCode = '100006C0005'
LEFT JOIN Sales idsp WITH(NOLOCK) on idsp.ItemID = Item.ID and Item.ParentItem = 0 and idsp.StoreID = dynamics.StoreID and idsp.Time between '2017-07-16' and '2017-07-31' and idsp.StoreID <> 1001 and Item.ParentItem = 0 and Item.ItemType <> 9
LEFT JOIN Department WITH(NOLOCK) on Department.ID = Item.DepartmentID
LEFT JOIN Category WITH(NOLOCK) on Category.ID = item.CategoryID
LEFT JOIN Supplier WITH(NOLOCK) on Supplier.ID = item.SupplierID
Group By
dynamics.ItemID,
item.ItemLookupCode,
dynamics.StoreID,
dynamics.RestockLevel,
Department.Name,
Category.Name,
Supplier.Code,
Supplier.SupplierName
order by
item.ItemLookupCode
我不應該在連接中過濾日期。因爲用戶將在任何日期進行過濾。 –
你不能在連接中使用你的過濾變量嗎?我想這是可能的。 –
- 1. 雙左記錄SQL左連接表
- 2. sql連接,左連接。記錄未顯示,如果有標準的右表
- 3. mysql連接顯示左表中的所有記錄,並在右表中匹配記錄的標記
- 4. 無法使用左外連接和在SQL Server中使用
- 5. 左外連接不返回主表中的所有記錄
- 6. 左外連接在SQL Server
- 7. SQL Server光標左連接
- 8. 在三個表中使用左連接(使用連接表)
- 9. 左連接要麼返回所有記錄,要麼沒有無
- 10. SQL(MS-Access) - 左加入顯示左表中的記錄不在右表
- 11. 使用左連接的SQL請求
- 12. 使用左連接的SQL分組
- 13. SQL與左連接顯示爲0的
- 14. 左連接 - 連接兩個表並從左表中拉出所有數據
- 15. MySQL加入需要顯示所有記錄從左表
- 16. 格式左連接mysql中選擇(沒有出現在左表中的所有記錄)
- 17. 左連接不返回左表中的所有行
- 18. 如何在sql中使用linq中的左連接?
- 19. SQL如何更新左連接的表?
- 20. SQL Server:左連接導致行數少於左表
- 21. 使用多個左連接
- 22. MySQL左連接(使用MeekroDB)
- 23. 休眠左連接使用
- 24. 如何使用左連接linq
- 25. MySQL連接表中所有左邊記錄都在正確的位置
- 26. SQL查詢左連接表
- 27. 選擇左連接表使用條件
- 28. 如何在SQL中正確使用左連接
- 29. SQL Server的左連接問題
- 30. SQL Server的左連接3臺
@Realcheeselord可以將其刪除你看,它只帶來右表的匹配記錄。它也沒有顯示來自左表的不匹配的記錄。我想帶來無與倫比的記錄 –
@RealCheeseLord在這種情況下,你不需要一個問題,因爲你有一些叫做_Expecting output_ – Sami
的可能重複[LEFT OUTER JOIN查詢不返回期望的行](https://stackoverflow.com/questions/14861927/left-outer-join-query-not-returning-expected-rows) –