我有一個日曆表,我試圖用來處理一些週末和假期問題。更新記錄與子查詢到自己的表
結構簡單:
CREATE TABLE calendar
(
daterank INT,
thedate DATE
);
的想法是,每個記錄有一個daterank,一個用於比較的目的。非假日平日有增量日期,週末和假日的日期等於前一個非假日平日。
設置非假日平日的日期結果比我想象的要容易,但設置週末和假期比我想象的要複雜。
的數據的一個子集:
daterank thedate
881 2013-05-21
882 2013-05-22
883 2013-05-23
884 2013-05-24
NULL 2013-05-25
NULL 2013-05-26
885 2013-05-27
886 2013-05-28
887 2013-05-29
888 2013-05-30
889 2013-05-31
NULL 2013-06-01
我想要什麼,在上述情況下,是取代的NULL爲5/25和5/26與884(對於5/24的值),空爲6/1與889等
什麼不起作用:
UPDATE calendar c1
SET c1.daterank = (
SELECT MAX(c2.daterank)
FROM calendar c2
WHERE c2.thedate < c1.thedate
AND c2.daterank IS NOT NULL
)
WHERE daterank IS NULL
;
任何想法?
所以,你有一個日曆表處理假期問題,你不表示是否假期?非常奇怪。 –