我有两个带有架构的表
CREATE TABLE City
(
City CHAR,
Area INT
)
CREATE TABLE Revenue
(
Municipality CHAR,
City_Code CHAR,
[Road tax] INT,
[Water Tax] INT,
[Entertainment Tax] INT
)
我需要按照区域的降序排列前3个城市,同时打印城市获得的总税收总和。有点像(例如):
New York, 40
Chicago, 27
London, 30
表格中的城市字段表格中的城市和城市代码字段收入需要识别表格之间的城市。
答案 0 :(得分:0)
您的架构没有意义。您的两个表中都应该有一个公用密钥,以便可以通过加入CITY
列从CITY
表中获取CITY_CODE
名称。我在下面的查询中做了这个假设。
SELECT B.CITY, (A.ROAD_TAX + A.WATER_TAX + A.ENTERTAINMENT_TAX) AS TOTAL_TAX
FROM
REVENUE A
INNER JOIN
CITY B
ON A.CITY_CODE = B.CITY_CODE
ORDER BY (A.ROAD_TAX + A.WATER_TAX + A.ENTERTAINMENT_TAX) DESC
LIMIT 3;
答案 1 :(得分:0)
试用此代码:
SELECT C.City,(R.[Road tax]+R.[Water Tax]+R.[Entertainment Tax])[Total Tax]
FROM City C
JOIN Revenue R ON R.CityCode=C.City
ORDER BY C.Area DESC
LIMIT 3;