计数重复

使用如下SQL语句计数时,明明只有一条数据,但是计数却为2,需要计数为1才对,这个如何解决呢?求问

select b.BQDM, a.SYXH, count(a.SYXH) as AA from dbo.SYZX a left join dbo.SYZX2 b on a.SYXH = cast(b.SYXH as varchar(16))

group by b.BQDM, a.SYXH

输出结果为:

db6619452b76caf92404dec3b0d7cb0a_1679901332854710.png

FineReport LH0730 发布于 2023-3-28 08:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-3-28 08:46(编辑于 2023-3-28 09:09)

select BQDM, SYXH,count(SYXH) [sl] from (

select distinct(b.BQDM) BQDM, a.SYXH from dbo.SYZX a left join dbo.SYZX2 b on a.SYXH = cast(b.SYXH as varchar(16))

) t group by BQDM, SYXH

  • LH0730 LH0730(提问者) 选择列表中的列 \'dbo.SYZX2.BQDM\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
    2023-03-28 08:56 
  • Z4u3z1 Z4u3z1 回复 LH0730(提问者) 已改 别名给错了
    2023-03-28 09:09 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-3-28 08:45

这个需要SYZX2表,和SYZX表字段a.SYXH对应的数据只有一条才可以。。。你现在可以匹配到2条了啊

最佳回答
0
1592Lv6高级互助
发布于2023-3-28 08:45

select b.BQDM, a.SYXH as AA from dbo.SYZX a left join dbo.SYZX2 b on a.SYXH = cast(b.SYXH as varchar(16))

这个sql有几条

  • LH0730 LH0730(提问者) 这个有一条数据
    2023-03-28 08:48 
  • 1592 1592 回复 LH0730(提问者) 那不应该呀,在外卖呢在包一层select看看
    2023-03-28 08:50 
最佳回答
0
JL98Lv6中级互助
发布于2023-3-28 09:27

elect b.BQDM, a.SYXH, count(DISTINCT a.SYXH) as AA from dbo.SYZX a left join dbo.SYZX2 b on a.SYXH = cast(b.SYXH as varchar(16))

group by b.BQDM, a.SYXH

  • 3关注人数
  • 302浏览人数
  • 最后回答于:2023-3-28 09:27
    请选择关闭问题的原因
    确定 取消
    返回顶部