我有6个表(A,B,C,D,E,F),所有表都具有以下列列表:
Date Price City Country Pin
让我们说表A有这样几行:
Date Price City Country Pin
19-01-2019 200 Pune India 411010
让我们说表B几乎没有这样的行:
Date Price City Country Pin
19-01-2019 300 Mumbai India 411010
让我们说表C像这样几行:
Date Price City Country Pin
19-01-2019 50 Kolhapur India 411010
让我们说表D有这样几行:
Date Price City Country Pin
19-01-2019 200 Satara India 411010
让我们说表E有这样几行:
Date Price City Country Pin
19-01-2019 20 Khandala India 411010
让我们说表F几乎没有这样的行:
Date Price City Country Pin
19-01-2019 10 Lonavala India 411010
我想创建一个表,例如所有这些表中包含日期和价格的主表。列价格的名称应为表的名称。
预期输出:
Date A B C D E F
19-01-201 200 300 50 200 20 10
如何实现?
答案 0 :(得分:0)
您可以使用union all
合并所有表,并为每个表保留一列:
select date, sum(a) a, sum(b) b, sum(c) c, sum(d) d, sum(e) e
from (
select date, price a, null b, null c, null d, null e
from a
union all
select date, null, price, null, null, null
from b
union all
select date, null, null, price, null, null
from c
union all
select date, null, null, null, price, null
from d
union all
select date, null, null, null, null, price
from e) as x
group by date;
如果对此结果感到满意,则可以通过在前面的select
查询之前添加以下内容来为其创建表:
create table master(Date date, Price int) as