疑难的分组统计查询,对于重复列的内容清空或直接显示0,只保留1个数值。

szlixiaolong 2019-07-26 02:30:25
select b.SubjectName,a.SumPaid,c.MenuName,a.billid from bi_Bill a,bi_billpayment b,bi_BillItem c where a.BillID=b.BillID and a.BillID=c.BillID and a.BillDate='2019-07-24 00:00:00' and a.BranchName like '%创意城%' and a.BillID='027J021-XS-190724-0002'
group by b.SubjectName,a.SumPaid,c.MenuName,a.billid

order by a.BillID

执行以上语句,SumPaid值就会出现重复的内容,正确的单号:027J021-XS-190724-0002,SumPaid值为69,支付方式为:支付宝




请问如何把SumPaid值列中的重复内容清空或直接显示0,只保留一个69呢?

...全文
195 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
szlixiaolong 2019-07-26
  • 打赏
  • 举报
回复
打错字了,感谢版主。
szlixiaolong 2019-07-26
  • 打赏
  • 举报
回复
引用 8 楼 二月十六 的回复:
如果我再查询MenuName列中的某些名称,请帮忙再修改一下 什么意思?没看明白
我知道修改了,谢谢版本。
szlixiaolong 2019-07-26
  • 打赏
  • 举报
回复
引用 8 楼 二月十六 的回复:
如果我再查询MenuName列中的某些名称,请帮忙再修改一下 什么意思?没看明白
在刚才的语句中,再查询MenuName列中的相应名称,例如:查询名称为多芒小丸子
二月十六 2019-07-26
  • 打赏
  • 举报
回复
如果我再查询MenuName列中的某些名称,请帮忙再修改一下 什么意思?没看明白
szlixiaolong 2019-07-26
  • 打赏
  • 举报
回复
引用 6 楼 二月十六 的回复:
SELECT
    b.SubjectName,
    a.SumPaid,
    STUFF(
        (
            SELECT
                ',' + c.MenuName
            FROM
                bi_BillItem c
            WHERE
                a.BillID = c.BillID
            FOR XML PATH('')
        ), 1, 1, ''
         ) AS MenuName,
    a.billid
FROM
    bi_Bill a,
    bi_billpayment b
WHERE
    a.BillID = b.BillID
    AND a.BillDate = '2019-07-24 00:00:00'
    AND a.BranchName LIKE '%创意城%'
    AND a.BillID = '027J021-XS-190724-0002'
GROUP BY
    b.SubjectName,
    a.SumPaid,
    a.billid
ORDER BY
    a.BillID;
执行语句后,可以了, 支付宝 69.00 1905夏季双人餐,多芒小丸子,椰香龟苓膏芋圆,芒果冻饼 027J021-XS-190724-0002 如果我再查询MenuName列中的某些名称,请帮忙再修改一下。
二月十六 2019-07-26
  • 打赏
  • 举报
回复
SELECT
    b.SubjectName,
    a.SumPaid,
    STUFF(
        (
            SELECT
                ',' + c.MenuName
            FROM
                bi_BillItem c
            WHERE
                a.BillID = c.BillID
            FOR XML PATH('')
        ), 1, 1, ''
         ) AS MenuName,
    a.billid
FROM
    bi_Bill a,
    bi_billpayment b
WHERE
    a.BillID = b.BillID
    AND a.BillDate = '2019-07-24 00:00:00'
    AND a.BranchName LIKE '%创意城%'
    AND a.BillID = '027J021-XS-190724-0002'
GROUP BY
    b.SubjectName,
    a.SumPaid,
    a.billid
ORDER BY
    a.BillID;
szlixiaolong 2019-07-26
  • 打赏
  • 举报
回复
引用 4 楼 二月十六 的回复:
试试这样,我没测试
SELECT
    b.SubjectName,
    a.SumPaid,
    STUFF(
        (
            SELECT
                ',' + c.MenuName
            FROM
                bi_BillItem c
            WHERE
                a.BillID = c.BillID
        ), 1, 1, ''
         ) AS MenuName,
    a.billid
FROM
    bi_Bill a,
    bi_billpayment b
WHERE
    a.BillID = b.BillID
    AND a.BillDate = '2019-07-24 00:00:00'
    AND a.BranchName LIKE '%创意城%'
    AND a.BillID = '027J021-XS-190724-0002'
GROUP BY
    b.SubjectName,
    a.SumPaid,
    a.billid
ORDER BY
    a.BillID;
执行语句后,提示以下内容: 消息 512,级别 16,状态 1,第 2 行 子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
二月十六 2019-07-26
  • 打赏
  • 举报
回复
试试这样,我没测试
SELECT
    b.SubjectName,
    a.SumPaid,
    STUFF(
        (
            SELECT
                ',' + c.MenuName
            FROM
                bi_BillItem c
            WHERE
                a.BillID = c.BillID
        ), 1, 1, ''
         ) AS MenuName,
    a.billid
FROM
    bi_Bill a,
    bi_billpayment b
WHERE
    a.BillID = b.BillID
    AND a.BillDate = '2019-07-24 00:00:00'
    AND a.BranchName LIKE '%创意城%'
    AND a.BillID = '027J021-XS-190724-0002'
GROUP BY
    b.SubjectName,
    a.SumPaid,
    a.billid
ORDER BY
    a.BillID;
二月十六 2019-07-26
  • 打赏
  • 举报
回复
最后这样显示符合要求吗,MenuName用逗号分隔 支付宝 69 MenuName1,MenuName2,MenuName3 027J021-XS-190724-0002
szlixiaolong 2019-07-26
  • 打赏
  • 举报
回复
引用 1 楼 二月十六 的回复:
出现重复sumpaid是因为MenuName不重复,按照MenuName分组就会出现多条了。 楼主想要的效果四个MenuNamen怎么显示呢?
是的,按照MenuName分组就会出现多条重复的,不知版主有没其他方法 ?
二月十六 2019-07-26
  • 打赏
  • 举报
回复
出现重复sumpaid是因为MenuName不重复,按照MenuName分组就会出现多条了。 楼主想要的效果四个MenuNamen怎么显示呢?

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧