2016-10-20 54 views
0

我需要一個查詢,我可以從qty手中獲取結果,分配數量和數量有序。在我的查詢中完成想要的結果的想法

我的問題是,我有這個查詢,它並沒有顯示我手頭上的數量等於0,其他2列中的任何值。

select 
item_location_view.qty_on_hand AS 'Qty on Hand', 
item_location_view.qty_allocated AS 'Qty Allocated', 
item_location_view.qty_backordered AS 'Qty Backordered' 
FROM 
    dbo.inv_mast inv_mast, 
    dbo.item_location_view item_location_view  
WHERE 
    inv_mast.item_id = item_location_view.item_id AND 
    ((item_location_view.qty_on_hand>=0) AND 
    (item_location_view.qty_allocated>0) AND 
    (item_location_view.qty_backordered>0)) 

謝謝大家

+2

首先不使用舊加入notation.Promote使用顯式的'JOIN' sintaxis,Aaron Bertrand寫了一篇不錯的文章[踢壞壞習慣:使用o ld-style JOINs](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx)。 –

+0

只要符合其他2個條件,您就應該得到結果,因爲您的所有條件都與「AND」關聯。你是否至少有一行OnHand = 0,Alloc> 0,以及延期> 0?如果沒有,你不會看到任何結果。嘗試評論你的Alloc和缺貨情況,看看你是否得到你期望的結果。 – Beth

回答

0

看起來像你需要更改ANDOR

select  
    ilv.qty_on_hand AS 'Qty on Hand', 
    ilv.qty_allocated AS 'Qty Allocated', 
    ilv.qty_backordered AS 'Qty Backordered'  
FROM dbo.inv_mast inv 
JOIN dbo.item_location_view ilv 
ON inv.item_id = ilv.item_id 
WHERE (
      (item_location_view.qty_on_hand>=0) 
     OR (item_location_view.qty_allocated>0) 
     OR (item_location_view.qty_backordered>0) 
    ) 

第二個選項也許

WHERE item_location_view.qty_on_hand >= 0 
    AND ( 
      item_location_view.qty_allocated > 0 
     OR item_location_view.qty_backordered > 0 
    )