使用其他表中的值更新列,不能使用distinct函数

eek*_*142 3 sql-server join distinct

表

我的原始数据在表2中.我从头开始创建Table1.我填充了A列,如下所示:

INSERT INTO Table1("item")
SELECT DISTINCT(Table2."item")
FROM Table2
Run Code Online (Sandbox Code Playgroud)

我填充了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"
Run Code Online (Sandbox Code Playgroud)

如何填充Table1."date"?我上面的UPDATE在这里不起作用,因为我不能在日期上使用聚合函数.我能够在单独的查询中使用以下代码获得我想要的结果:

SELECT DISTINCT Table1."item"
, Table2."date"
FROM Table1 INNER JOIN Table2
ON Table1."item" = Table2."item"
ORDER BY Table1."item"
Run Code Online (Sandbox Code Playgroud)

但是,如何使用此查询的结果来设置列的值?我正在使用SQL Server 2008.

Aar*_*and 6

如果你不能像@Lamak建议的那样重新插入,那么你可以UPDATE这样做:

UPDATE t1
  SET t1.Date = s.Date
  FROM Table1 AS t1
  INNER JOIN 
  (
    SELECT Item, [Date] = MAX([Date]) -- or MIN()
      FROM Table2
      GROUP BY Item
  ) AS s
  ON t1.Item = s.Item;
Run Code Online (Sandbox Code Playgroud)