0
我在檢查昨天是否收到價格 - 我的蘋果時遇到了一些麻煩。檢查可能不存在的與前幾天有關的行
棘手的部分是,在存儲價格的表格中,如果我昨天沒有收到價格,那麼就不會有與昨天有關的任何行。那麼,如果我想確定前一天我有一些價格,我怎麼能每天做我的支票?
我在檢查昨天是否收到價格 - 我的蘋果時遇到了一些麻煩。檢查可能不存在的與前幾天有關的行
棘手的部分是,在存儲價格的表格中,如果我昨天沒有收到價格,那麼就不會有與昨天有關的任何行。那麼,如果我想確定前一天我有一些價格,我怎麼能每天做我的支票?
如果你有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
您可以使用[日曆表](http :// stackoverf low.com/questions/5635594/how-to-create-a-calender-table-for-100-years-in-sql)並加入到這個項目中,這樣你就可以在每個不同的日子裏記錄下來,只是有些人不會有價格表中的任何記錄都將返回一個'NULL'值,您可以將'ISNULL()'轉換爲其他值。 – 3N1GM4