我只是想从不同的表中添加不同的列...有没有人知道如何做到这一点?
考虑我有3个表格如下
表格数据如下
1)电视销售
Id Date NoOfSales Totalamount
1 03/05/2014 10 10000
2 04/05/2014 20 20000
3 05/05/2014 30 30000
2)销售
Id Date NoOfSales Totalamount
1 03/05/2014 10 50000
2 04/05/2014 20 60000
3 05/05/2014 30 70000
3)冷却销售
Id Date NoOfSales Totalamount
1 03/05/2014 10 30000
2 04/05/2014 20 60000
3 05/05/2014 30 70000
现在我想在特定“日期”的所有表格中添加“Totalamount” 例如,我需要在03/05/2014以tot00mount为90000
答案 0 :(得分:1)
您可以通过组合要在不同表上聚合的信息来解决您的问题,并将它们相加。这看起来像是:
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
联合字段的名称和类型必须相同。如果它们没有相同的名称,您应该在3个选择查询中为2列创建公共别名,然后在主查询上使用这些别名。此外,还应执行UNION,包括ALL关键字,以避免消除三个表中的重复记录。
答案 1 :(得分:1)
在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
可以丢失行。
其次,有三个具有相同格式的表表明数据库设计不佳。您应该有一个包含销售额的表格和一个表明它所引用的产品类型的列。