我创建了4个包含客户信息的表(Mumbai, Bangalore, Pune, Delhi
)
在所有4个表中,我的表中有一个账单金额表列,我想显示从最高到最低的所有表的账单金额。
我使用了以下查询,但我不知道如何继续使用它。
将视图view1创建为:
Select sum(m.BillAmount),sum(p.BillAmount),sum(b.BillAmount),sum(c.BillAmount)
from Mumbai m,Chennai c, Pune p, Bangalore b
ORDER BY
我可以获得与此相关的适当查询吗?
答案 0 :(得分:1)
这里有一个设计问题。您应该只有一个表来存储您的所有城市。您现在有4个城市,但如果游客客户想要添加另一个城市,那么使用您当前的设计,您将需要添加一个表并更改您的SQL查询。
如果您为您的城市创建一个表,而另一个表用您的账单创建一个引用城市的外键,您将能够获得所有城市的账单总和。
Table cities
------------------
id city_name
1 Mumbai
2 Bengalore
3 Pune
4 Delhi
-------------------
Table bills
--------------------
id city_id amount
1 1 100
2 1 100
3 2 100
4 3 100
5 4 100
6 3 100
7 1 100
这是查询
SELECT c.city_name, SUM(b.amount) as total
FROM bills as b INNER JOIN cities as c
ON c.id = b.city_id
GROUP BY c.id
ORDER BY total DESC;