Mysql 如何从不同的表中添加不同的列?
我只是想从不同的表中添加不同的列。。。有人知道怎么做吗 假设我有3张表,如下所示Mysql 如何从不同的表中添加不同的列?,mysql,add,Mysql,Add,我只是想从不同的表中添加不同的列。。。有人知道怎么做吗 假设我有3张表,如下所示 电视销售 空调销售 冷盘销售 表中的数据如下所示 1) 电视销售 2) 空调销售 3) 冷盘销售 Id Date NoOfSales Totalamount 1 03/05/2014 10 30000 2 04/05/2014 20 60000 3 05/05/2014 30
Id Date NoOfSales Totalamount
1 03/05/2014 10 30000
2 04/05/2014 20 60000
3 05/05/2014 30 70000
现在我想从所有表中为特定的“日期”添加“Totalamount”
例如,我需要2014年5月3日的totalamount为90000您可以通过将要在不同表上汇总的信息合并,然后将金额相加来解决问题。这看起来像:
SELECT t.Date,SUM(t.Totalamount)
FROM
(
SELECT Date,Totalamount
FROM tvSales
UNION ALL
SELECT Date,Totalamount
FROM acSales
UNION ALL
SELECT Date,Totalamount
FROM coolerSales
) t
WHERE t.Date='03/05/2014'
GROUP BY t.Date
union的字段必须具有相同的名称和类型,这一点很重要。如果它们的名称不同,则应在3个select查询中为2列创建公共别名,然后在主查询中使用这些别名。此外,还应执行包含ALL关键字的联合,以避免消除三个表中的重复记录。在MySQL中,最简单的方法是使用
UNION ALL
和聚合:
select date, sum(totalamount) as TotalSales
from ((select date, totalamount from TvSales
) union all
(select date, totalamount from AcSales
) union all
(select date, totalamount from CoolerSales
)
) t
group by date;
使用union all
的原因是为了防止不同表中的日期不同。join
使行丢失成为可能
第二,有三个格式相同的表表明数据库设计很差。您应该有一个包含销售额的表格和一个列,指明它所指的产品类型。谢谢您的回复……但是日期的条件在哪里呢……我想要特定日期的总销售额@GordonLinoff@user3531533 . . . 然后使用
其中date=XXX
而不是按日期分组
。
SELECT t.Date,SUM(t.Totalamount)
FROM
(
SELECT Date,Totalamount
FROM tvSales
UNION ALL
SELECT Date,Totalamount
FROM acSales
UNION ALL
SELECT Date,Totalamount
FROM coolerSales
) t
WHERE t.Date='03/05/2014'
GROUP BY t.Date
select date, sum(totalamount) as TotalSales
from ((select date, totalamount from TvSales
) union all
(select date, totalamount from AcSales
) union all
(select date, totalamount from CoolerSales
)
) t
group by date;