【发布时间】:2012-05-03 08:45:45
【问题描述】:
我有这三个表:
表 1:
InvoiceId InvoiceNumber CompanyId
-------------------------------------------------
3 1 2
4 2 2
6 1 1
7 3 2
8 4 2
9 2 1
表 2:
CompanyId CompanyName
-------------------------------
1 Name1
2 Name2
表 3:
InvoiceId AcceptDate AcceptType
---------------------------------------------
3 AAAA O
3 BBBB P
6 CCCC P
4 DDDD O
7 EEEE O
9 FFFF P
7 GGGG P
表 1 和表 3 具有一对多的关系,表 3 具有多个链接的行。表 3 每个 InvoiceId 最多有 2 行。
任务
我想对表 3 的行进行分组以给出这个结果:
InvoiceId AcceptDate1 AcceptDate2
--------------------------------------------
3 AAAA BBBB
6 CCCC null
4 DDDD null
and ....
然后将这些结果与表 1 和表 2 相结合,得到:
InvoiceId InvoiceNumber AcceptDate1 AcceptDate2 Name
--------------------------------------------------------------------------
3 1 AAAA BBBB Name2
4 2 DDDD null Name2
7 3 EEEE GGGG Name2
8 4 null null Name2
6 1 CCCC null Name1
9 2 FFFF null Name1
AcceptDate1 和 AcceptDate2 是静态的。
【问题讨论】:
-
我需要一个新表,将 Table3 中每个 InvoiceId 的 AcceptDate 合并到一行中,然后将这个新表与其他两个表连接起来。我需要在 Table3 上创建一个带有此列的新表的查询:InvoiceId、AcceptDate1、AcceptDate2。如果 invoiceId 在 table3 中只有一条记录,则仅填写 AcceptDate1,AcceptDate2 为空。我不能用英语很好地解释。对不起
-
@MichaelBuen 感谢您提供的信息链接!
-
@Behnam 我明白你想要什么,你能告诉我们从表 3 中选择哪个 AcceptDate,选择哪个 AcceptType?
标签: sql-server-2005 join