我在')'附近收到语法错误。我的子查询确实有一个别名,别名为Y。消息102,级别15,状态1。
此查询在我从表dq.JDA_SUPERSESSION添加左联接之前起作用。我为每个Union ALL将左连接添加到3个点中。
SELECT
Y.Legacy_Company
,Y.ITEM
,C.DESCRIPTN
,C.SIZE
,CASE
WHEN C.SUBGROUP_NAME = ''
THEN C.BRAND_NAME
ELSE C.SUBGROUP_NAME
END SUB_GROUP_DESC
,CASE
WHEN C.GROUP_NAME = ''
THEN (
CASE
WHEN C.SUBGROUP_NAME = ''
THEN C.BRAND_NAME
ELSE C.SUBGROUP_NAME
END
)
ELSE C.GROUP_NAME
END GROUP_DESC
,CASE
WHEN C.SUPERGROUP_NAME IS NULL
THEN (
CASE
WHEN C.GROUP_NAME = ''
THEN (
CASE
WHEN C.SUBGROUP_NAME = ''
THEN C.BRAND_NAME
ELSE C.SUBGROUP_NAME
END
)
ELSE C.GROUP_NAME
END
)
ELSE C.SUPERGROUP_NAME
END SUPER_GROUP_DESC
,C.SCC
,Y.Site_State
,Y.Location_ID
-- ,D.GS_inco
,Y.Site_Nbr
,Year(Y.Posting_period) * 100 + Month(Y.Posting_period) AS Posting_Period
,Y.Qtytype
,Y.OTC_STATUS
,Y.ABC_CODE
,Y.Qty
-- ,C1.Liters
-- ,C1.BTTLS_PCAS
, (Y.Qty * isnull(C1.Liters * C1.BTTLS_PCAS / 9, 1)) AS [9LCasesQty]
FROM (
SELECT
'SGWS' AS Legacy_Company
,INV.ITEM AS ITEM
,SL.Site_State
-- ,ISNULL(L.Location_ID, (Cast(INV.SITE_ID AS VARCHAR))) AS Location_ID
,INV.location_id AS Location_ID
,INV.SITE_ID AS SITE_NBR
,dateadd(day, - 1, dateadd(month, 1, cast(right(period, 2) + '/01/' + left(period, 4) AS DATE))) AS Posting_Period
,'EOM_OH_Qty' AS QtyType
,Sum(MNTH_END_OH) AS Qty
FROM dq.edw_monthend_inventory_os_cache INV
INNER JOIN (
SELECT DISTINCT Site_Nbr, Site_State
FROM dq.static_Location
) SL ON INV.Site_ID = SL.Site_Nbr
INNER JOIN scm.CI_CORPITEM C ON INV.ITEM = C.ITEM
LEFT JOIN (SELECT MAX(SSN.ITEM) as ITEM
,SSN.ALTITEM
,SSN.LOC
FROM dq.JDA_SUPERSESSION SSN
WHERE
SSN.STATUS_FLG ='A'
GROUP BY SSN.ALTITEM, SSN.LOC )B ON
B.ITEM =INV.ITEM
WHERE [PERIOD] > year(dateadd(month, (0 - 37), getdate())) * 100 + month(dateadd(month, (0 - 37), getdate()))
AND C.SAPSUPPLIER = 100464
GROUP BY INV.ITEM, SL.Site_State, INV.SITE_ID, [PERIOD], INV.Location_ID
UNION ALL
SELECT
'SGWS' AS Legacy_Company
,INV.ITEM AS ITEM
,SL.Site_State
-- ,ISNULL(L.Location_ID, (Cast(INV.SITE_ID AS VARCHAR))) AS Location_ID
,INV.location_id AS Location_ID
,INV.SITE_ID AS SITE_NBR
,dateadd(day, - 1, dateadd(month, 1, cast(right(period, 2) + '/01/' + left(period, 4) AS DATE))) AS Posting_Period
,'EOM_OO_Qty' AS QtyType
,Sum([MNTH_END_OO]) AS Qty
FROM dq.EDW_MONTHEND_INVENTORY_os_cache INV
INNER JOIN (
SELECT DISTINCT Site_Nbr, Site_State
FROM dq.static_Location
) SL ON INV.Site_ID = SL.Site_Nbr
INNER JOIN scm.CI_CORPITEM C ON INV.ITEM = C.ITEM
LEFT JOIN (SELECT MAX(SSN.ITEM) as ITEM
,SSN.ALTITEM
,SSN.LOC
FROM dq.JDA_SUPERSESSION SSN
WHERE
SSN.STATUS_FLG ='A'
GROUP BY SSN.ALTITEM, SSN.LOC )B ON
B.ITEM =INV.ITEM
WHERE [PERIOD] > year(dateadd(month, (0 - 37), getdate())) * 100 + month(dateadd(month, (0 - 37
), getdate()))
AND C.SAPSUPPLIER = 100464
GROUP BY INV.ITEM, SL.Site_State, INV.SITE_ID, [PERIOD], INV.Location_ID
UNION ALL
SELECT
'SGWS' AS Legacy_Company
,SD.CORP_ITEM_NO AS ITEM
,SL.Site_State
-- ,ISNULL(L.Location_ID,(Cast(SD.SITE AS VARCHAR))) AS Location_ID
,SD.location_id AS Location_ID
,SD.SITE AS Site_NBR
,dateadd(day, - 1, dateadd(month, 1, cast(right(SD.POSTING_Prd, 2) + '/01/' + left(SD.POSTING_Prd, 4) AS DATE))) AS Posting_Period
,'Sales' AS QtyType
,Sum(SD.QTY_DEC_EQU) AS Qty
FROM dq.EDW_SALES_DETAIL_CACHE SD
INNER JOIN scm.CI_CORPITEM C ON SD.CORP_ITEM_NO = C.ITEM
LEFT JOIN
(SELECT MAX(SSN.ITEM) as ITEM
,SSN.ALTITEM
,SSN.LOC
FROM dq.JDA_SUPERSESSION SSN
WHERE
SSN.STATUS_FLG ='A'
GROUP BY SSN.ALTITEM, SSN.LOC )B ON
B.ITEM = SD.CORP_ITEM_NO
INNER JOIN (
SELECT DISTINCT Site_Nbr, Site_State
FROM dq.static_Location
) SL ON SD.Site = SL.Site_Nbr
WHERE SD.POSTING_Prd > year(dateadd(month, (0 - 37), getdate())) * 100 + month(dateadd(month, (0 - 37), getdate()))
AND C.SAPSUPPLIER = 100464
GROUP BY SD.Location_ID, SD.CORP_ITEM_NO, SD.POSTING_Prd, SL.Site_State, SD.SITE ) A
LEFT JOIN dq.JDA_SKU_SOURCING SK ON A.ITEM = SK.ITEM
AND A.Location_ID = SK.DEST )Y
LEFT JOIN (
SELECT I.Item, I.DESCRIPTN, I.Size, I.BTTLS_PCAS, SC.LITERS, I.BRAND_NAME, I.SUBGROUP_NAME, I.GROUP_NAME, I.SUPERGROUP_NAME, I.SAPSUPPLIER, I.SUPP_NAME, I.SCC, I.UPC
FROM scm.CI_CORPITEM I
LEFT JOIN dq.STATIC_9L_CONV SC ON I.Size = SC.size
) C1 ON Y.ITEM = C1.ITEM
LEFT JOIN scm.CI_CORPITEM C ON Y.Item = C.Item
没有错误。像以前一样运行。
答案 0 :(得分:1)
某些格式会很快发现问题。没有明显的原因,下面的行带有)Y。
AND A.Location_ID = SK.DEST )Y