在何处显示重复的SQL
我有两张桌子在何处显示重复的SQL,sql,tsql,Sql,Tsql,我有两张桌子 Invoice (ordernumber, status(which assign to InvoiceStatuses), etc) 及 我只需要检查发票中订单号的副本,但where status!=statusID(其中名称为“已取消”) 我认为您需要在查询中进行以下更改 JOIN子句过滤取消状态和where子句以仅检索重复的状态 SELECT A.* FROM Invoices A WHERE exists (SELECT OrderNumber
Invoice (ordernumber, status(which assign to InvoiceStatuses), etc)
及
我只需要检查发票中订单号的副本,但where status!=statusID
(其中名称为“已取消”)
我认为您需要在查询中进行以下更改 JOIN子句过滤取消状态和where子句以仅检索重复的状态
SELECT A.*
FROM Invoices A
WHERE exists (SELECT OrderNumber
FROM Invoices c
JOIN InvoiceStatuses b
ON c.InvoiceStatus=b.InvoiceStatusID
AND InvoiceStatus != 'CANCELLED'
WHERE a.OrderNumber = c.OrderNumber
GROUP BY OrderNumber
HAVING COUNT(*)>1)
请写下你想做的事情的文字描述,而不仅仅是用英语在WHERE子句中写下你想要的单词。您想在这里做什么还不完全清楚。您的
发票表中是否有主键列?即使没有其他与之匹配的记录-发票状态!='取消'
但如果我有两张相同编号的发票,但其中一张已取消,则第二张不需要显示。在您的查询中,其showsI已更新查询。你能检查一下这是否有效吗?
SELECT A.*
FROM Invoices A
JOIN InvoiceStatuses b
(
SELECT * FROM InvoiceStatuses
WHERE InvoiceStatus = 'CANCELLED'
) B
ON A.InvoiceStatus!=b.InvoiceStatusID
WHERE exists (SELECT OrderNumber
FROM Invoices c
WHERE a.OrderNumber = c.OrderNumber
GROUP BY OrderNumber
HAVING COUNT(*)>1)
SELECT A.*
FROM Invoices A
WHERE exists (SELECT OrderNumber
FROM Invoices c
JOIN InvoiceStatuses b
ON c.InvoiceStatus=b.InvoiceStatusID
AND InvoiceStatus != 'CANCELLED'
WHERE a.OrderNumber = c.OrderNumber
GROUP BY OrderNumber
HAVING COUNT(*)>1)