【发布时间】:2019-11-18 16:01:35
【问题描述】:
下面的查询应该显示 2 类产品的详细信息:DIS001 和 DIS002。
当 DIS002 时,这应该“重置”查询,以便它只显示在 DIS002 销售日期之后销售的 DIS001 产品。
说实话,我什至不确定这是否可能。如有任何建议,我将不胜感激。
SELECT DISTINCT
Sales.RaisedDateTime AS [Date],
Contacts.ContactID AS [Contact ID],
Contacts.SiteID AS [Site ID],
Sales.ProductID AS [Product],
CASE
WHEN Sales.ProductID = 'DIS002'
THEN Sales.RaisedDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR(10), '2019-10-28', 101) + ' 00:00:00')
END AS [Start Date]
FROM
((Bookings.Bookings Bookings
INNER JOIN
Contacts.Contacts Contacts ON (Bookings.ContactID = Contacts.ContactID))
INNER JOIN
Sales.Sales Sales ON (Bookings.ContactID = Sales.ContactID))
WHERE
(Sales.ProductID = 'DIS001' AND
Sales.RaisedDate >= MAX([Start Date])
【问题讨论】:
-
样本数据和预期结果将有助于更好地理解您的问题。
标签: sql-server tsql date