求助,SQL如下报错,如何修改

SQL如下:

WITH A AS (

SELECT

   (CASE WHEN TA.SHOPID LIKE '6%' THEN '6001' ELSE TA.SHOPID END) AS SHOPID,

    --门店ID

   SUBSTR((CASE WHEN TA.SHOPID LIKE '6%' THEN '社区店' ELSE TC.SHOPNAME END),1,2) 

   AS SHOPNAME,

   --发生金额

   TB.BMID,   --部门ID

   TB.BMNAME,   --部门名称

   ROUND(SUM(COSTVALUE)/10000,4) AS COSTVALUE   --发生金额

FROM ADS_WASTEBOOK_T TA

LEFT JOIN PROCATEGORY TB

ON TA.CATEGORYID = TB.XL

LEFT JOIN SHOP TC

ON TA.SHOPID = TC.SHOPID

WHERE 

    TC.HEADSHOPID  IN ('0311','03111')

    AND TA.SHOPID NOT IN ('0001','0002')

    AND TA.SHOPID IN (SELECT T.ORG_SHOP_ID FROM DIM_ORG T WHERE T.USERID = '${fine_username}')

GROUP BY 

   (CASE WHEN TA.SHOPID LIKE '6%' THEN '6001' ELSE TA.SHOPID END) ,

    --门店ID

   SUBSTR((CASE WHEN TA.SHOPID LIKE '6%' THEN '社区店' ELSE TC.SHOPNAME END),1,2) ,

TB.BMID,

TB.BMNAME

 ),

 B AS (

SELECT

   (CASE WHEN TA.SHOPID LIKE '6%' THEN '6001' ELSE TA.SHOPID END) AS SHOPID,

    --门店ID

   SUBSTR((CASE WHEN TA.SHOPID LIKE '6%' THEN '社区店' ELSE TC.SHOPNAME END),1,2) 

   AS SHOPNAME,

TB.BMID,

TB.BMNAME,

   ROUND(SUM(COSTVALUE)/10000,4) AS TQCOSTVALUE

FROM ADS_WASTEBOOK_TQ TA

LEFT JOIN PROCATEGORY TB

ON TA.CATEGORYID = TB.XL

LEFT JOIN SHOP TC

ON TA.SHOPID = TC.SHOPID

WHERE 

    TC.HEADSHOPID  IN ('0311','03111')

    AND TA.SHOPID NOT IN ('0001','0002')

    AND TA.SHOPID IN (SELECT T.ORG_SHOP_ID FROM DIM_ORG T WHERE T.USERID = '${fine_username}')

GROUP BY 

   (CASE WHEN TA.SHOPID LIKE '6%' THEN '6001' ELSE TA.SHOPID END) ,

    --门店ID

   SUBSTR((CASE WHEN TA.SHOPID LIKE '6%' THEN '社区店' ELSE TC.SHOPNAME END),1,2) ,

TB.BMID,

TB.BMNAME

 ),

C AS (

SELECT

   (CASE WHEN TA.SHOPID LIKE '6%' THEN '6001' ELSE TA.SHOPID END) AS SHOPID,

    --门店ID

   SUBSTR((CASE WHEN TA.SHOPID LIKE '6%' THEN '社区店' ELSE TC.SHOPNAME END),1,2) 

   AS SHOPNAME,

TB.BMID,

TB.BMNAME,

   ROUND(SUM(COSTVALUE)/10000,4) AS T7COSTVALUE

FROM ADS_WASTEBOOK_T7 TA

LEFT JOIN PROCATEGORY TB

ON TA.CATEGORYID = TB.XL

LEFT JOIN SHOP TC

ON TA.SHOPID = TC.SHOPID

WHERE 

    TC.HEADSHOPID  IN ('0311','03111')

    AND TA.SHOPID NOT IN ('0001','0002')

    AND TA.SHOPID IN (SELECT T.ORG_SHOP_ID FROM DIM_ORG T WHERE T.USERID = '${fine_username}')

GROUP BY 

   (CASE WHEN TA.SHOPID LIKE '6%' THEN '6001' ELSE TA.SHOPID END) ,

    --门店ID

   SUBSTR((CASE WHEN TA.SHOPID LIKE '6%' THEN '社区店' ELSE TC.SHOPNAME END),1,2) ,

TB.BMID,

TB.BMNAME

)

SELECT 

      A.SHOPID AS SHOPID,

A.SHOPNAME AS SHOPNAME, 

A.BMID,

A.BMNAME,

A.COSTVALUE,

B.TQCOSTVALUE,

C.T7COSTVALUE

FROM A 

LEFT JOIN B ON A.BMID = B.BMID AND A.SHOPID = B.SHOPID

LEFT JOIN C ON A.BMID = C.BMID AND A.SHOPID = C.SHOPID

WHERE 

    1=1

    ${if(len(SHOPNAME) == 0,"","and SHOPNAME in ('" + SHOPNAME + "')")}

ORDER BY A.SHOPID

输入如下参数后:

image.png

报错

image.png

如何修改

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

你要对每一列的字段前面都加上别名就是你表的别名

类似

image.png

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-26 10:33

image.png

  • DKS892DJDSAw DKS892DJDSAw(提问者) 请问这里应如何修改呀
    2023-04-26 10:34 
  • Z4u3z1 Z4u3z1 回复 DKS892DJDSAw(提问者) 指明它是A的还B的抑或是C的
    2023-04-26 10:35 
  • 2关注人数
  • 192浏览人数
  • 最后回答于:2023-4-26 10:34
    请选择关闭问题的原因
    确定 取消
    返回顶部