你能試試嗎?這是硬編碼的方法:
INSERT INTO <yourtable> (day, key, value)
SELECT DISTINCT t1.day AS day, 'Bike' as key, 20 as value
FROM
<yourtable> AS t1
LEFT OUTER JOIN
(SELECT day, key FROM <yourtable> WHERE key='Bike') AS t2
ON t1.day = t2.day
WHERE t2.key IS NULL;
或者如果可以的話,請用存儲過程(這將讓你選擇的活動和值:
CREATE PROCEDURE dbo.InsertActivityWhereMissing
@activity VARCHAR(50)
, @activityValue INT
AS
BEGIN
INSERT INTO <yourtable> (day, key, value)
SELECT t1.day AS day, @activity as key, @activityValue as value
FROM
(SELECT day FROM <yourtable> GROUP BY day) AS t1
LEFT OUTER JOIN
(SELECT day, key FROM <yourtable> WHERE key = @activity) AS t2
ON t1.day = t2.day
WHERE t2.key IS NULL;
END
這樣,您就可以執行相同的對於任何特定"activity"
(我只是冠名這樣的說法,但我指的是Run
,Bike
,Swim
或其他任何東西)
通過邏輯動作,游泳也應該被標記 - 爲週一及週二,對不對? –
我w螞蟻能夠選擇那個價值。所以我想看看哪些日子不包括自行車,然後將它添加到那些日子。 – hoakey
所以你事先不知道價值?用戶交互/決策意味着至少有兩個查詢 - 一個查看列表,另一個查詢實現更改。 –