1

我创建了 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

请问我可以得到与此相关的适当查询吗?

4

1 回答 1

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;
于 2018-04-14T18:36:11.700 回答