heqteyur 2015-08-18 04:41 采纳率: 100%
浏览 3025
已采纳

SQL 分组条件聚合怎么实现?

我有图1实例样式的数据和表格。想得到图2的结果。不知道SQL语句该怎么写了,谢谢。
图片说明

  • 写回答

4条回答 默认 最新

  • Tiger_Zhao 2015-08-18 05:31
    关注

    SQL Server

        /* 测试数据
        WITH table1(运单明细,运单编号,付款方式,运费)AS(
            SELECT 'L11','Y05',1,30 UNION ALL
            SELECT 'L12','Y05',2,40 UNION ALL
            SELECT 'L13','Y05',2,30 UNION ALL
            SELECT 'L14','Y06',1,50 UNION ALL
            SELECT 'L15','Y06',1,60 UNION ALL
            SELECT 'L16','Y06',2,40
        ) */
        SELECT 运单编号,
               [1] AS 付款方式1的运费合计,
               [2] AS 付款方式2的运费合计,
               [1]+[2] AS 全部运费合计
          FROM (
                SELECT 运单编号,付款方式,运费
                  FROM table1
               ) t
         PIVOT (
                SUM(运费)
                FOR 付款方式 IN ([1],[2])
               ) p
    

    结果

        运单编号 付款方式1的运费合计 付款方式2的运费合计 全部运费合计
        -------- ------------------- ------------------- ------------
        Y05                       30                  70          100
        Y06                      110                  40          150
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器