Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 server Sql Server中的交叉应用与CTE_Sql Server_Tsql_Common Table Expression_Cross Apply - Fatal编程技术网

Sql server Sql Server中的交叉应用与CTE

Sql server Sql Server中的交叉应用与CTE,sql-server,tsql,common-table-expression,cross-apply,Sql Server,Tsql,Common Table Expression,Cross Apply,我有两张桌子 第一个表名为:TBLProvance 创建表( provinceid int非空主键(1,1), provinceNme nvarchar(最大值), 说明nvarchar(最大值)) 第二个表名为tblcity: 创建表tblcity( 城市ID整数标识(1,1), 城市名称nvarchar(最大值), 人口整数, provinceid int外键引用TBLPROVICE(provinceid) ); 我需要列出至少有两个大城市的所有省份。大城市的定义是拥有至少一百万居民。查

我有两张桌子
第一个表名为:TBLProvance

创建表(
provinceid int非空主键(1,1),
provinceNme nvarchar(最大值),
说明nvarchar(最大值))
第二个表名为tblcity:

创建表tblcity(
城市ID整数标识(1,1),
城市名称nvarchar(最大值),
人口整数,
provinceid int外键引用TBLPROVICE(provinceid)
);
我需要列出至少有两个大城市的所有省份。大城市的定义是拥有至少一百万居民。查询必须返回以下列:

  • TBLProvance.ProvinceId
  • TBLProvance.ProvinceName
  • 名为LargeCityCount的派生列,表示该省大城市的总数

此查询正确吗?

还有其他方法可以让我实现我的目标吗?

你说100万,你输入了10万。是的,很抱歉粗心的错误欢迎使用stackoverflow。尝试使用拼写检查。CTE与CROSS APPLY的标题如何?
SELECT tp.provinceid, tp.provinceNme, COUNT(tc.cityid) AS largecitycount 
FROM tblprovince tp INNER JOIN
tblcity tc ON tc.provinceid=tp.provinceid
WHERE tc.population>=1000000
GROUP BY tp.provinceid, tp.provinceNme
HAVING COUNT(tc.cityid)>1
SELECT tp.provinceid, tp.provinceNme, COUNT(tc.cityid) AS largecitycount 
FROM tblprovince tp INNER JOIN
tblcity tc ON tc.provinceid=tp.provinceid
WHERE tc.population>=1000000
GROUP BY tp.provinceid, tp.provinceNme
HAVING COUNT(tc.cityid)>1