我在检查昨天是否收到价格时遇到了一些麻烦,让我们说 - 我的苹果。
棘手的部分是,在存储价格的表格中,如果我昨天没有得到价格,就不会有与昨天相关的任何行。那么如果我想确定在我得到一些价格的前一天,我怎样才能每天进行检查?
答案 0 :(得分:1)
如果您有一个Calendar
表(例如,请参阅here),其中包含一个名为Date
的字段,并对您的数据结构做出一些假设:
SELECT c.[Date],
ISNULL(p.Prices,'No Prices')
FROM Calendar c
LEFT JOIN Prices p ON c.[Date] = p.[Date]
您的问题不是很清楚,但它实际上甚至可能只是检查前一天是否存在行,而不是报告所有日期(在这种情况下我认为有多个产品):
SELECT DISTINCT
prod.Product,
CASE WHEN prev.Product IS NULL
THEN 'No Prices for yesterday'
ELSE 'Prices recorded for yesterday'
END AS PricesYesterday
FROM Prices prod
LEFT JOIN Prices prev ON prev.Product = prod.Product
AND prev.[Date] = dateadd(day,datediff(day,0,GETDATE()),0) - 1