我有两个表,我需要找到今天准备好的所有发票,并且 INumber 中没有句点,并且所有项目都没有交付。每个发票在 Invdetails 中可能有几行,我必须找到数量不为零的所有行。
Invoice
Field String: INumber
Field Date: DateReady
InvDetails
Field String: INumber
Field Integer: Quantity
这是我的SQL,但是需要很长时间,有时会挂掉不知道有没有更好的方法。
Select D.* from InvDetails D
Join Invoice I on on D.INumber=I.INumber
where I.Dateready='2019-05-14' and D.Quantity > 0 and I.INumber IS NOT LIKE '%.%'
谢谢你的帮助。
您还可以尝试在进行连接之前缩小表格的范围,因此,您将看到更少的行...
SELECT D.*
FROM (SELECT * FROM Invoice WHERE Dateready = ‘2019-05-14’ AND CHARINDEX(‘.’, INumber) = 0) AS I
LEFT JOIN (SELECT * FROM InvDetails WHERE Quantity > 0) AS D ON I.INumber = D.INumber
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句