2014-03-24 28 views
0

这是我当前的查询:如何比较两个字段,然后在Microsoft Access中设置布尔值?

SELECT i.itemNo, Nz(TotalOrdered,0) AS Sumofqtyordered, Nz(TotalReturned,0) AS sumofqtyreturn, Nz(TotalIssued,0) AS sumofqtyissued, (Nz(TotalOrdered,0)-Nz(TotalIssued,0)-Nz(TotalReturned,0)) AS Balance 
FROM ((item AS i 
LEFT JOIN (SELECT itemno, Sum(qtyordered) AS TotalOrdered FROM delivered_item GROUP BY itemno) AS d ON d.itemno=i.itemno) 
LEFT JOIN (SELECT itemno, Sum(qtyreturn) AS TotalReturned FROM item_return GROUP BY itemno) AS r ON r.itemno=i.itemno) 
LEFT JOIN (SELECT itemno, Sum(qtyissued) AS TotalIssued FROM item_issued GROUP BY itemno) AS iss ON iss.itemno=i.itemno; 

如何领域(minqty)在我的项目表与查询余额比较?我将在此查询中添加一个字段PlaceOrder(布尔)。当余额小于minqty时设置为yes,当minqty大于或等于minqty时设置为no?任何1可以帮助我的代码?

回答

0

添加到您的SELECT

((Nz(TotalOrdered,0)-Nz(TotalIssued,0)-Nz(TotalReturned,0))<[minqty]) AS PlaceOrder 

它会返回-1(真)或0(假)。如果你想让它实际上将返回“是”或“否”:

IIf((Nz(TotalOrdered,0)-Nz(TotalIssued,0)-Nz(TotalReturned,0))<[minqty],'Yes','No') AS PlaceOrder 
+0

THX了很多...但我可以更换NZ(totalordered,0),......与平衡有任何可能影响? – UnusualSkill

+0

你应该可以做到这一点没有问题 – Mike

+0

嗨,希望你还记得这一点。我可以问你,如果我想产生一个错误消息,当(qtyreturned的总和+ qtyissued的总和)超过qtyordered的总和,这可以通过编写代码或任何其他方法进行访问?谢谢 – UnusualSkill