SQL Server同库/跨库关联表按城市统计账单金额及售价的查询方法
SQL Server 双表关联按城市分组统计查询语句
前提说明
- 两表通过公共字段
Ref_id关联,默认使用INNER JOIN仅保留两表匹配的记录,若需要保留T1所有城市的记录可替换为LEFT JOIN - 统计结果会对相同城市的
Billed_Amount、Sale_Price做聚合求和
场景1:两张表位于同一数据库
直接使用表名关联即可,SQL语句如下:
SELECT T1.City_names, SUM(T2.Billed_Amount) AS 总Billed_Amount, SUM(T2.Sale_Price) AS 总Sale_Price FROM T1 INNER JOIN T2 ON T1.Ref_id = T2.Ref_id -- 若需要按日期过滤可放开下方注释,替换为实际日期范围 -- WHERE T1.Date BETWEEN '2024-01-01' AND '2024-12-31' GROUP BY T1.City_names
场景2:两张表位于同一服务器的不同数据库
SQL Server跨库查询需要补充数据库名.架构名前缀,默认架构通常为dbo,示例假设T1存放在DB1库、T2存放在DB2库,SQL语句如下:
SELECT T1.City_names, SUM(T2.Billed_Amount) AS 总Billed_Amount, SUM(T2.Sale_Price) AS 总Sale_Price FROM [DB1].[dbo].[T1] INNER JOIN [DB2].[dbo].[T2] ON T1.Ref_id = T2.Ref_id -- 若需要按日期过滤可放开下方注释,替换为实际日期范围 -- WHERE T1.Date BETWEEN '2024-01-01' AND '2024-12-31' GROUP BY T1.City_names
注意:使用时请将示例中的
DB1、DB2替换为实际的两个数据库名称,若表的架构不是dbo也需要同步替换为实际架构名。
内容的提问来源于stack exchange,提问作者tress
相关产品推荐
相关产品推荐

