【发布时间】:2011-01-14 22:18:22
【问题描述】:
我正在寻找一些建议来构建一个查询来连接表 A 和表 B 以获得作为表 C 的输出。看起来我需要能够合并这两个表并构建一个交叉表查询。下面显示的数据只是示例,因为两个表中的日期每个月都会发生变化。注意:两个表中的日期不会重叠。例如,表 B 下面的 FutureDates 永远不会是 June 或 July。反之亦然
Table A
Product Location HistoryDate HistorySales ... more columns
A X June 100
A X July 200
Table B
Product Location FutureDate FutureSales ... more columns
A X August 150
A X Sept 50
Table C
Product Location June July August September ... other columns from A & B
A X 100 200 150 50
感谢您的帮助。
【问题讨论】:
-
您将需要动态 SQL 或者只是硬编码所有 12 个月并且有空值或有 Month1、Month2、Month3、Month4 并且可能以其他方式传回这些列所代表的内容。
-
@Daniel,一个支点正是他想要的。
-
这个问题太模糊了。 A/B 中的日期是否表示为月份名称的字符串,并且每个月只有一条记录?考虑到它们“不会重叠”,跨 A 和 B 的记录是否永远不会超过 12 条?这并不明显,但我猜还有其他产品+位置组合?鉴于 C 中的一行由 A 和 B 中的多行组成,您打算如何在 C 中显示“A 和 B 中的其他列”——数据来自 A/B 的哪一行?
标签: sql sql-server-2005 tsql stored-procedures