使用SQL Server中的另一个表填充一个表

时间:2014-09-09 18:24:10

标签: sql sql-server

我有两个SQL表如下:

enter image description here

enter image description here

您可能会注意到,第一个表具有每月频率(日期列),而第二个表具有季度频率。这就是我想做的事情:

  • 对于表1中的每个issueid,我想查看日期,确定季度的前一个结束,然后从表2中获取对应于该季度末的该问题的数据,并插入它位于最后两列的第一个表中。

  • 例如:采取issueid 123456和日期1/31/2014。上一季度末是2013年12月31日。我想转到表1,复制与该issueid和2013年12月31日对应的q_expq_act,然后将其粘贴到第一个表格中。

当然,我想填写整个第一张表并尽量减少手动插入。

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

尝试以下查询

UPDATE issues
SET q_exp=(SELECT TOP 1 q.q_exp
           FROM quarterlyTable q
           WHERE q.issueid=i.issueid
           AND q.[date]<=i.[date]
           ORDER BY q.[date] DESC)
,q_act=   (SELECT TOP 1 q.q_act
           FROM quarterlyTable q
           WHERE q.issueid=i.issueid
           AND q.[date]<=i.[date]
           ORDER BY q.[date] DESC)
FROM issues i