想要做到和EXCEL里面的透视图一样的效果

SELECT COUNT(F.值)数量,F.差距,F.差值 FROM (SELECT E.值,E.差值,CASE WHEN E.与上限差距>0 THEN  E.与上限差距 

WHEN E.与下限差距>0 THEN  E.与下限差距

END AS 差距 FROM (select D.值,D.差值,D.上限,D.下限,D.值-D.上限 as 与上限差距,D.下限-D.值 as 与下限差距 FROM

(SELECT

                        A.*,

                        B.差值,

                        B.上限,

                        B.下限,

                        B.SPCN,

                CONVERT ( VARCHAR ( 10 ), datepart(WK, A.time) ) + N'周' AS WEEK1,

        datepart(WK, A.time) AS WEEK2        

                FROM

                        (

                        SELECT

                                AA.*,

                                ( cast( AA.设备 AS NVARCHAR ) + cast( AA.位置 AS NVARCHAR ) ) AS 设备位置,

                                C.ITEM,

                                C.供应商,

                                CASE WHEN AA.设备 = '影像仪测试—正面' THEN C.影像仪正面时间 

WHEN AA.设备 = '影像仪测试—反面' THEN C.影像仪反面时间 

WHEN AA.设备 = '三坐标' THEN C.三坐标时间

END as time

                        FROM

                                测量室数据 AA

                                LEFT JOIN 测量室主表 C ON AA.ID = C.ID 

                        WHERE

                                isnull(C.ITEM,'')<>'' AND isnull(C.供应商,'')<>'' AND (AA.设备 = '影像仪测试—正面' OR AA.设备 = '影像仪测试—反面' OR AA.设备 = '三坐标' )

                        ) A

                        LEFT JOIN (

                        SELECT

                                ( cast( 设备 AS NVARCHAR ) + cast( SPC位置 AS NVARCHAR ) ) AS 设备位置,

                                SPCID,

                                SPC位置,

                                SPCU - SPCL AS 差值,

                                SPCN + SPCU AS 上限,

                                SPCN + SPCL AS 下限,设备,

                                ID,

                                SPCN 

                        FROM

                                测量室SPC 

                        ) B ON A.设备位置 = B.设备位置 

                        AND A.ITEM = B.ID )D where D.WEEK2>34 and D.WEEK2<40 and D.供应商= '烈炎' )E)F GROUP BY F.差值,F.差距

-----------------------------------------------------------

这个SQL的结果查出来是这样

image.png

-----------------------------

image.png

image.png

想达到这个透视的效果 行与列的分组是自己创建的

FineReport callie 发布于 2022-9-26 14:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
lxy2Lv6中级互助
发布于2022-9-26 14:46

列做横向扩展就好了

  • callie callie(提问者) 这个分组请问怎么弄
    2022-09-26 15:01 
  • lxy2 lxy2 回复 callie(提问者) 你现在的分组是不对的吗
    2022-09-26 15:34 
  • callie callie(提问者) 回复 lxy2 我想做成我EXCEL里面透视表的分组
    2022-09-26 15:48 
  • lxy2 lxy2 回复 callie(提问者) 就是用case when 去写了,你透视里怎么分成这样的组,sql里也按这个思路去写就好了
    2022-09-26 15:54 
  • 2关注人数
  • 281浏览人数
  • 最后回答于:2022-9-26 14:46
    请选择关闭问题的原因
    确定 取消
    返回顶部