我正在尝试比较以下查询之间的结果
rootid
是invoice
表的关键,可以支付或支付发票状态。
Query1:
SELECT COUNT(I1.rootId)
FROM Invoice_Table I1
WHERE I1.Invoice_Status ='Paid'
AND I1.Invoice_Id IN
(
SELECT DISTINCT I2.Invoice_Id
FROM Invoice_Table I2
WHERE I2.Customer = 'X'
GROUP BY I2.Invoice_Id
HAVING COUNT(DISTINCT I2.Invoice_Id||I2.Invoice_Status) > 1
)
结果 - A
Query2 :
SELECT COUNT(I1.rootId)
FROM Invoice_Table I1, Invoice_Table I2
WHERE I1.invoice_id = I2.invoice_id
And I1.Invoice_Status = 'Paid'
And I2.Invoice_Status <> 'Paid'
And I1.rootId <> I2.rootId
AND I1.Customer = 'X'
AND I2.Customer = 'X'
如果上面的结果是-B
但是如果在Query2中将COUNT(I1.rootId)
更改为COUNT(DISTINCT I1.rootId)
,我会得到结果A,这是query1的结果,我想知道query1和query2是否实际上是相同的?