我有两个表,我想根据字段合并他们的行。我将欣赏这个任务的简单的SQL代码。例如
表格1。叫:余额
PubID | Year | StudID |DrAmt| CrAmt| Desc|
------------------------------------------
12 | 2012 | OK1 | 100 | 0 | Bal c/f
11 | 2012 | OK2 | 250 | 0 | Bal c/f
10 | 2012 | OK3 | 0 | 50 | Bal c/f
12 | 2012 | OK4 | 10 | 0 | Bal c/f
表2。叫:balances_detail
PubID | Items | DrAmt | CrAmt|
-----------------------------------
12 | Stationary | 10 | 0
12 | Pendrive | 30 | 0
12 | Utility | 40 | 0
11 | Stationary | 5 | 0
11 | Pendrive | 30 | 0
11 | Utility | 10 | 0
等等。
我现在想要像这张桌子一样的结果。此表包含studID及其bal c / f以及每个PubID的balances_detail。我只需要一个DrAmt列和一个CrAmt列,它将包含两个表和Desc列中的行:
PubID | Year | StudID |DrAmt| CrAmt| Desc|
------------------------------------------
12 | 2012 | OK1 | 100 | 0 | Bal c/f
12 | 2012 | OK1 | 10 | 0 | Stationary
12 | 2012 | OK1 | 30 | 0 | Pendrive
12 | 2012 | OK1 | 40 | 0 | Utility
11 | 2012 | OK2 | 250 | 0 | Bal c/f
11 | 2012 | OK2 | 5 | 0 | Stationary
11 | 2012 | OK2 | 30 | 0 | Pendrive
11 | 2012 | OK2 | 10 | 0 | Utility
答案 0 :(得分:0)
据我所知,您无法合并这两个表,因为结果表有两列:
StudID
Desc
哪个不是balances_detail
表的一部分。如果这两列是balances_detail
表的一部分,那么您可以在sql语句中使用具有约束的Union关键字:
请注意,UNION中的每个SELECT语句必须具有相同的名称 列数。列还必须具有类似的数据类型。 此外,每个SELECT语句中的列必须具有相同的顺序。
请查看此link,了解有关联盟'关键字
答案 1 :(得分:0)
您在寻找
吗? SELECT b.PubID, a.Year, a.StudID, b.DrAmt, b.CrAmt, b.Items AS Description
FROM Table2 b
JOIN Table1 a ON a.PubID=b.PubID
UNION
SELECT a.PubID, a.Year, a.StudID, a.DrAmt, a.CrAmt, a.Description
FROM Table1 a
ORDER BY 1,2,3