2012-11-07 64 views
0

如何写我的SQL查询是否正确?我想在查询中使用WHERE子句,但我不知道如何正确。这是我的查询与错误:如何使用WHERE子句中的查询与LEFT JOIN?

**SELECT pil.[Buy-from Vendor No_], pil.No_, pil.Amount, pil.Quantity 
FROM dbo.[„blk“ 2011$Purch_ Inv_ Line]AS pil 
WHERE pil.Type=5 
LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] AS pih 
ON pil.[Document No_]=pih.No_ 
ORDER BY pil.amount** 

回答

1

这是你有手柄左侧加入

SELECT 
    pil.[Buy-from Vendor No_] 
    , pil.No_, pil.Amount 
    , pil.Quantity 
FROM dbo.[UAB „Arvi cukrus“ 2011$Purch_ Inv_ Line] pil 
LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] Pih ON pil.[Document No_]=pih.No_ 
WHERE pil.Type=5 
ORDER BY pil.amount 
+2

错误的表名,必须是[“BLK” 2011 $ Purch_ Inv_线] – Mantas89

+0

@ Mantas89:感谢的人:) –

+1

变化与另一个表名:)谢谢,这可能是正确的。 – Mantas89

0

把所有的连接后:

SELECT pil.[Buy-from Vendor No_], pil.No_, pil.Amount, pil.Quantity 
FROM dbo.[„blk“ 2011$Purch_ Inv_ Line]AS pil 
LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] AS pih 
ON pil.[Document No_]=pih.No_ 
WHERE pil.Type=5 
ORDER BY pil.amoun 
0

WHERE之前ORDER BY

0

FROM条款和其他表引用后移动WHERE条款,像这样:

SELECT 
    pil.[Buy-from Vendor No_], 
    pil.No_, 
    pil.Amount, 
    pil.Quantity 
FROM ... 
... 
WHERE pil.Type=5 
ORDER BY pil.amount 
1

Where而来的From条款后的方式。正确的查询是

SELECT pil.[Buy-from Vendor No_], pil.No_, pil.Amount, pil.Quantity 
    FROM dbo.[„blk“ 2011$Purch_ Inv_ Line]AS pil 
    LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] AS pih 
    ON pil.[Document No_]=pih.No_ 
    WHERE pil.Type=5 
    ORDER BY pil.amount;