【发布时间】:2017-11-17 05:46:56
【问题描述】:
我需要选择所有尚未开票的订单
and BR.isInvoiced = 0
Select DG.DateGenerated, oit.OrderIdentifier, BR.isInvoiced, BR.hash,
BR.OrderNumber, UL.FirstName, UL.LastName from [Order] O
INNER JOIN BillingReport BR
ON O.OrderNumber = BR.OrderNumber
INNER JOIN UsersLib UL
ON UL.UserID = O.UserId
INNER JOIN Order_Identifier_Transactional OIT
ON O.OrderNumber = OIT.OrderNumber
INNER JOIN
(Select OP.OrderNumber, OP.DateGenerated from OrderProducts OP
group by OP.OrderNumber, op.DateGenerated
having op.DateGenerated in (select MAX(op.DateGenerated) from orderproducts ))as DG
ON DG.OrderNumber = O.OrderNumber
where O.Status = 'COMPLETED'
and BR.isInvoiced = 0
and UL.UserName not like '%Support%'
and UL.AccountNumber != '10000001001'
and BR.invoicepdf is NULL
and BR.ispaid = 0
然后只选择每个订单号生成的最近日期 但使用这个查询我仍然发现一些像这样的重复:
【问题讨论】:
-
如果您仔细观察,您会发现这两个突出显示的记录的 DateGenerated 并不相同。因此,它们在技术上是不同的记录,而不是重复的。
-
是的。但我们正在寻找最近生成的日期。如附图所示
标签: sql sql-server duplicates inner-join having