我的原始數據是表2中。我從頭創建了Table1。我填充列A是這樣的:
INSERT INTO Table1("item")
SELECT DISTINCT(Table2."item")
FROM Table2
我填充Table1.Totals(列B)是這樣的:
UPDATE Table1
SET totals = t2.q
FROM Table1 INNER JOIN
(
SELECT t2."item"
, SUM(t2.quantity) AS q
FROM t2
GROUP BY t2."item"
) AS t2
ON Table1."item" = t2."item"
我怎麼能填充表1 「約會」?上面的我的更新不起作用,因爲我不能在日期使用聚合函數。我能得到我使用一個單獨的查詢下面的代碼想要的結果:
SELECT DISTINCT Table1."item"
, Table2."date"
FROM Table1 INNER JOIN Table2
ON Table1."item" = Table2."item"
ORDER BY Table1."item"
可是我怎麼用這個查詢的結果來設置列的值?我使用的是SQL Server 2008的
你應該選擇什麼樣的日期,如果有一個以上的?你爲什麼不能在一個日期列使用聚合功能? – Lamak 2012-02-07 18:50:04
你需要解釋你想要的日期。在T-SQL中沒有ANY()或ARBITRARY()函數。如果Orange有兩個不同的日期會發生什麼? – 2012-02-07 18:54:37
另外,請不要在列名稱周圍加雙引號。使其很難閱讀,並且還依賴於QUOTED_IDENTIFIER設置。 – 2012-02-07 19:01:26