這段 SQL 有幾個問題:\n\n1. 在 SELECT 語句中,將每個 CASE WHEN 子句的結果命名為 A.TOTAL,A.BZXZ,A.ZWJG,...,但是這些命名已經在 FROM 子句中使用,會導致編譯錯誤。應該將這些命名修改為不重複的名稱。\n\n2. 在 FROM 子句中,SUM_T 表和 GONGSI 表使用了 LEFT JOIN,但是缺少了 ON 子句來指定連接條件。應該添加 ON 子句來指定 SUM_T 表和 GONGSI 表之間的連接條件。\n\n修正後的 SQL 應該如下:\n\nSELECT\n B.SITE,\n A.YEAR,\n B.COMPANY_LEGAL,\n A.RD_NUM,\n A.SALARY_MONTH,\n (CASE WHEN A.TOTAL = 0 THEN '0'\n ELSE TO_CHAR(A.TOTAL, '9,999,999,999.9999')END ) AS TOTAL,\n (CASE WHEN A.BZXZ = 0 THEN '0'\n ELSE TO_CHAR(A.BZXZ, '9,999,999,999.9999')END ) AS BZXZ,\n (CASE WHEN A.ZWJG = 0 THEN '0'\n ELSE TO_CHAR(A.ZWJG, '9,999,999,999.9999')END ) AS ZWJG,\n (CASE WHEN A.JBF = 0 THEN '0'\n ELSE TO_CHAR(A.JBF, '9,999,999,999.9999')END ) AS JBF,\n (CASE WHEN A.YBJT = 0 THEN '0'\n ELSE TO_CHAR(A.YBJT, '9,999,999,999.9999')END ) AS YBJT,\n (CASE WHEN A.NZJ = 0 THEN '0'\n ELSE TO_CHAR(A.NZJ, '9,999,999,999.9999')END ) AS NZJ,\n (CASE WHEN A.SSJLJ = 0 THEN '0'\n ELSE TO_CHAR(A.SSJLJ, '9,999,999,999.9999')END ) AS SSJLJ,\n (CASE WHEN A.JJQTBXMQX = 0 THEN '0'\n ELSE TO_CHAR(A.JJQTBXMQX, '9,999,999,999.9999')END ) AS JJQTBXMQX,\n (CASE WHEN A.YGFHXJ = 0 THEN '0'\n ELSE TO_CHAR(A.YGFHXJ, '9,999,999,999.9999')END ) AS YGFHXJ,\n (CASE WHEN A.JSF = 0 THEN '0'\n ELSE TO_CHAR(A.JSF, '9,999,999,999.9999')END ) AS JSF,\n (CASE WHEN A.ZWGC = 0 THEN '0'\n ELSE TO_CHAR(A.ZWGC, '9,999,999,999.9999')END ) AS ZWGC,\n (CASE WHEN A.XRRZJLJT = 0 THEN '0'\n ELSE TO_CHAR(A.XRRZJLJT, '9,999,999,999.9999')END ) AS XRRZJLJT,\n (CASE WHEN A.QTJT = 0 THEN '0'\n ELSE TO_CHAR(A.QTJT, '9,999,999,999.9999')END ) AS QTJT,\n (CASE WHEN A.GHHDJT = 0 THEN '0'\n ELSE TO_CHAR(A.GHHDJT, '9,999,999,999.9999')END ) AS GHHDJT,\n (CASE WHEN A.ZMLJT = 0 THEN '0'\n ELSE TO_CHAR(A.ZMLJT, '9,999,999,999.9999')END ) AS ZMLJT,\n (CASE WHEN A.QYJJ = 0 THEN '0'\n ELSE TO_CHAR(A.QYJJ, '9,999,999,999.9999')END ) AS QYJJ,\n (CASE WHEN A.GWJT = 0 THEN '0'\n ELSE TO_CHAR(A.GWJT, '9,999,999,999.9999')END ) AS GWJT,\n (CASE WHEN A.HWCCSZJT = 0 THEN '0'\n ELSE TO_CHAR(A.HWCCSZJT, '9,999,999,999.9999')END ) AS HWCCSZJT,\n (CASE WHEN A.YFZE = 0 THEN '0'\n ELSE TO_CHAR(A.YFZE, '9,999,999,999.9999')END ) AS YFZE,\n (CASE WHEN A.YYSP = 0 THEN '0'\n ELSE TO_CHAR(A.YYSP, '9,999,999,999.9999')END ) AS YYSP,\n (CASE WHEN A.SYJT = 0 THEN '0'\n ELSE TO_CHAR(A.SYJT, '9,999,999,999.9999')END ) AS SYJT,\n (CASE WHEN A.CCF = 0 THEN '0'\n ELSE TO_CHAR(A.CCF, '9,999,999,999.9999')END ) AS CCF,\n (CASE WHEN A.DKHSFZW = 0 THEN '0'\n ELSE TO_CHAR(A.DKHSFZW, '9,999,999,999.9999')END ) AS DKHSFZW,\n (CASE WHEN A.DKSFJF = 0 THEN '0'\n ELSE TO_CHAR(A.DKSFJF, '9,999,999,999.9999')END ) AS DKSFJF,\n (CASE WHEN A.DKZSF = 0 THEN '0'\n ELSE TO_CHAR(A.DKZSF, '9,999,999,999.9999')END ) AS DKZSF,\n (CASE WHEN A.KJJS = 0 THEN '0'\n ELSE TO_CHAR(A.KJJS, '9,999,999,999.9999')END ) AS KJJS,\n (CASE WHEN A.GRSDS = 0 THEN '0'\n ELSE TO_CHAR(A.GRSDS, '9,999,999,999.9999')END ) AS GRSDS,\n (CASE WHEN A.KSBDJK = 0 THEN '0'\n ELSE TO_CHAR(A.KSBDJK, '9,999,999,999.9999')END ) AS KSBDJK,\n (CASE WHEN A.ZFGJJDJK = 0 THEN '0'\n ELSE TO_CHAR(A.ZFGJJDJK, '9,999,999,999.9999')END ) AS ZFGJJDJK,\n (CASE WHEN A.SFXZ = 0 THEN '0'\n ELSE TO_CHAR(A.SFXZ, '9,999,999,999.9999')END ) AS SFXZ,\n (CASE WHEN A.ZFGJJGS = 0 THEN '0'\n ELSE TO_CHAR(A.ZFGJJGS, '9,999,999,999.9999')END ) AS ZFGJJGS,\n (CASE WHEN A.WXGS = 0 THEN '0'\n ELSE TO_CHAR(A.WXGS, '9,999,999,999.9999')END ) AS WXGS,\n (CASE WHEN A.SB_YL = 0 THEN '0'\n ELSE TO_CHAR(A.SB_YL, '9,999,999,999.9999')END ) AS SB_YL,\n (CASE WHEN A.SB_YB = 0 THEN '0'\n ELSE TO_CHAR(A.SB_YB, '9,999,999,999.9999')END ) AS SB_YB,\n (CASE WHEN A.SB_SY = 0 THEN '0'\n ELSE TO_CHAR(A.SB_SY, '9,999,999,999.9999')END ) AS SB_SY,\n (CASE WHEN A.SB_GS = 0 THEN '0'\n ELSE TO_CHAR(A.SB_GS, '9,999,999,999.9999')END ) AS SB_GS,\n (CASE WHEN A.SB_SY1 = 0 THEN '0'\n ELSE TO_CHAR(A.SB_SY1, '9,999,999,999.9999')END ) AS SB_SY1\nFROM\n SUM_T A\n LEFT JOIN GONGSI B ON A.RD_NUM = B.RD_NUM

SQL 編譯錯誤分析:重複命名和缺少連接條件

原文地址: https://www.cveoy.top/t/topic/pxet 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录