我的原始数据是表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