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中的字段有商户代码,卡号,交易金额
展开
 我来答
sysplay
2015-08-30 · TA获得超过1155个赞
知道小有建树答主
回答量:663
采纳率:86%
帮助的人:539万
展开全部

 假设

另外还有问题,如果一个签约商户没有刷卡信息,也会被过滤掉,导致遗漏。

 

下面的语句你可以试试,我没有测试的。

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 地区

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式