sql查询两张关联表中的数据与单表查询不一致 5
表A:商户信息表字段名称如下:地区,特约商户名称,特约商户地址,商户号表B:数据表字段名称如下:商户代码,交易金额需要统计每个地区的特约商户名称汇总和商户号汇总,以及这些...
表A:商户信息表
字段名称如下:地区,特约商户名称,特约商户地址,商户号
表B:数据表
字段名称如下:商户代码,交易金额
需要统计每个地区的特约商户名称汇总和商户号汇总,以及这些商户号中有交易的商户代码汇总及对应的交易笔数和金额;
(一个商户代码可能对应多个商户名称)
语句如下:
SELECT distinct 地区,count(distinct 特约商户名称) as 签约商户数,count(distinct 商户信息表.商户号) as 签约商户代码数,count(DISTINCT 数据表.商户代码) as 刷卡商户数,count(*) as 刷卡笔数,
sum(数据表.交易金额) as 交易总金额 from 数据表,商户信息表
where 数据表.商户代码=商户信息表.商户号
group by 地区
统计结果和单独在两张表中统计的结果不一样,是否语句有误,请帮助,谢谢
表B中的字段有商户代码,卡号,交易金额 展开
字段名称如下:地区,特约商户名称,特约商户地址,商户号
表B:数据表
字段名称如下:商户代码,交易金额
需要统计每个地区的特约商户名称汇总和商户号汇总,以及这些商户号中有交易的商户代码汇总及对应的交易笔数和金额;
(一个商户代码可能对应多个商户名称)
语句如下:
SELECT distinct 地区,count(distinct 特约商户名称) as 签约商户数,count(distinct 商户信息表.商户号) as 签约商户代码数,count(DISTINCT 数据表.商户代码) as 刷卡商户数,count(*) as 刷卡笔数,
sum(数据表.交易金额) as 交易总金额 from 数据表,商户信息表
where 数据表.商户代码=商户信息表.商户号
group by 地区
统计结果和单独在两张表中统计的结果不一样,是否语句有误,请帮助,谢谢
表B中的字段有商户代码,卡号,交易金额 展开
1个回答
展开全部
假设
另外还有问题,如果一个签约商户没有刷卡信息,也会被过滤掉,导致遗漏。
下面的语句你可以试试,我没有测试的。
Select 地区,count(商户号) 签约商户代码数 ,sum(特约商户数) as 签约商户数,sum(商户代码) 刷卡商户数,sum(商户刷卡金额) 交易总金额
From ( Select *
From (Select 地区,商户号,count(特约商户名称) As 特约商户数 from 商户信息表 Group By Select 地区,商户号) A Left Join (Select 商户代码,sum(交易金额) as 商户刷卡金额,count(*) as 商户刷卡笔数 from 数据表 group by 商户代码) B On A.商户号=B.商户代码
) C
Group By 地区
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |