我只是想说这个论坛在我目前的工作中对我帮助很大。
我需要另一个帮助,为我们的ms访问数据库编写一个sql查询。我们的想法是为所有表(1月到12月)建立一个联合查询,以获取唯一的ID号并得到他们的" Item"每月的值作为输出表中的列。
下面是一个例子。如果在表中找不到ID,则该值将返回null。
这在excel中似乎很容易,但我们希望在后端执行此操作。我只记得为所有表写下UNION查询,但是我得到了多远。
提前感谢您的帮助。
表1:1月
| ID | Item |
| 1 | Apple |
| 2 | Salad |
| 3 | Grapes |
表2:二月
| ID | Item |
| 1 | Apple |
| 2 | Grapes |
| 4 | Grapes |
输出表:
| ID | January | February |
| 1 | Apple | Apple |
| 2 | Salad | Grapes |
| 3 | Grapes | NULL |
| 4 | NULL | Grapes |
答案 0 :(得分:2)
一种方法是union all
和group by
:
select id, max(January) as January, max(February) as February
from (select id, item as January, NULL as February from January
union all
select id, NULL, item from February
) jf
group by id;
答案 1 :(得分:0)
如果每个表只存在一次id,为什么不使用Inner Join呢?如果列在另一个表上不存在但在第一个表上存在
,它将自动使列无效SELECT id, Jan.Item,Feb.Item
FROM January Jan
INNER JOIN February Feb
on Jan.id=Feb.id