Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内部联接和求和的SQL查询(SQLite3)_Sql_Sqlite - Fatal编程技术网

内部联接和求和的SQL查询(SQLite3)

内部联接和求和的SQL查询(SQLite3),sql,sqlite,Sql,Sqlite,我有两个带有模式的表 CREATE TABLE City ( City CHAR, Area INT ) CREATE TABLE Revenue ( Municipality CHAR, City_Code CHAR, [Road tax] INT, [Water Tax] INT, [Entertainment Tax] INT )

我有两个带有模式的表

CREATE TABLE City
  (
     City CHAR,
     Area INT
  )

CREATE TABLE Revenue
  (
     Municipality        CHAR,
     City_Code           CHAR,
     [Road tax]          INT,
     [Water Tax]         INT,
     [Entertainment Tax] INT
  ) 
我需要按面积降序排列前三名城市,同时打印该城市所得税总额。沿着(例如)路线的东西:


表City中的城市字段和表Revenue中的城市代码字段需要标识表之间的城市。

您的模式没有意义。两个表中都应该有一个公用键,这样就可以通过连接
CITY\u code
列从
CITY
表中获取
CITY
名称。我在下面的查询中做了这个假设

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;
请尝试以下代码:

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;

提示:
加入
<代码>分组依据。请尝试我的代码,这可能会对您有所帮助。
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;