2016-10-20 2 views
0

Ich brauche eine Abfrage, wo ich die Ergebnisse von Spalte Menge Hand, Menge zugeordnet und Menge nachbestellt erhalten kann.Ideen, um gewünschte Ergebnisse in meiner Abfrage zu erreichen

Mein Problem ist, dass ich diese Abfrage habe und es zeigt mir nicht Menge auf der Hand, die gleich 0 ist und einen Wert in den anderen 2 Spalten.

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)) 

Danke alle

+2

Erste nicht notation.Promote die Verwendung von explict verwenden ändern müssen alt join 'JOIN' sintaxis, Aaron Bertrand schrieb einen schönen Artikel [Schlechte Angewohnheiten zu treten: mit o ld-style JOINs] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) darüber. –

+0

sollten Sie Ergebnisse erhalten, solange Ihre anderen 2 Kriterien erfüllt sind, da alle Ihre Bedingungen mit 'AND's verknüpft sind. Haben Sie mindestens eine Zeile mit OnHand = 0, Alloc> 0 und Backordered> 0? Wenn nicht, werden Sie keine Ergebnisse sehen. Versuchen Sie, Ihre Alloc- und Backorder-Bedingungen zu kommentieren und zu prüfen, ob Sie die erwarteten Ergebnisse erhalten. – Beth

Antwort

0

Sieht aus wie Sie AND für OR

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) 
    ) 

vielleicht 2. Option

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