帮忙指出一下错误,谢谢。
COPTD表-订单
主键:(TD001 单别 TD002单号 TD003序号 )TD008数量 TD009已交数量 TD013预交日期
COPTH表--销售单身
主键:(TH001 单别 TH002单号) TH004 品号 TH014 订单单别 TH015 订单单号 TH016订单序号
COPTG--销售单头
主键:(TG001 单别 TG002单号) TG003 日期
INVMB
主键:(MB001品号),MD068仓库号
CMSMD
主键:(MD001仓库号),MD002仓库名称
结果要按 TG003时间查询显示
仓库名 到期未交比 到期已交比 过期已交比 过期未交比
DECLARE @YF CHAR(6)
SELECT @YF='201201'
;WITH
CTE1 AS (SELECT CMSMD.MD001 as cghb, CMSMD.MD002 as cgry,
(SELECT COUNT(*) AS Expr1 FROM COPTH
LEFT JOIN COPTD ON COPTH.TH015 = COPTD.TD002 AND COPTD.TD001 = COPTH.TH014
LEFT JOIN COPTG ON COPTG.TG002 = COPTH.TH002 AND COPTG.TG001 = COPTH.TH001 AND COPTD.TD013 >= COPTG.TG003
WHERE COPTD.TD009 >= COPTD.TD008 AND COPTH.TH016 = COPTD.TD003 AND COPTH.TH004 = INVMB.MB001
AND left(TG003,6)=@YF )AS DQYJ,
(SELECT COUNT(*) AS Expr1 FROM COPTH
LEFT JOIN COPTD ON COPTH.TH015 = COPTD.TD002 AND COPTD.TD001 = COPTH.TH014
LEFT JOIN COPTG ON COPTG.TG002 = COPTH.TH002 AND COPTG.TG001 = COPTH.TH001 AND COPTD.TD013 < COPTG.TG003
WHERE COPTD.TD009 >= COPTD.TD008 AND COPTH.TH016 = COPTD.TD003 AND COPTH.TH004 = INVMB.MB001 AND COPTD.TD013 >= COPTG.TG003
AND left(TG003,6)=@YF)AS GQYJ,
(SELECT COUNT(*) AS Expr1 FROM COPTH
LEFT JOIN COPTD ON COPTH.TH015 = COPTD.TD002 AND COPTD.TD001 = COPTH.TH014
LEFT JOIN COPTG ON COPTG.TG002 = COPTH.TH002 AND COPTG.TG001 = COPTH.TH001
WHERE COPTD.TD009 < COPTD.TD008 AND COPTH.TH016 = COPTD.TD003 AND COPTH.TH004 = INVMB.MB001 AND COPTD.TD013 >= COPTG.TG003
AND left(TG003,6)=@YF) AS DQWJ,
(SELECT COUNT(*) AS Expr1 FROM COPTH
LEFT JOIN COPTD ON COPTH.TH015 = COPTD.TD002 AND COPTD.TD001 = COPTH.TH014
LEFT JOIN COPTG ON COPTG.TG002 = COPTH.TH002 AND COPTG.TG001 = COPTH.TH001
WHERE COPTD.TD009 < COPTD.TD008 AND COPTH.TH016 = COPTD.TD003 AND COPTH.TH004 = INVMB.MB001 AND COPTD.TD013 < COPTG.TG003
AND left(TG003,6)=@YF)AS GQWJ
FROM CMSMD
LEFT OUTER JOIN INVMB ON INVMB.MB068 = CMSMD.MD001)
SELECT cghb, cgry, CONVERT(numeric(10, 2), CONVERT(numeric(10, 2), SUM(DQWJ) * 100) / (SUM(DQYJ+GQYJ+DQWJ+GQWJ)))
AS 到期未交比, CONVERT(numeric(10, 2), CONVERT(numeric(10, 2), SUM(DQYJ) * 100) / (SUM(DQYJ+GQYJ+DQWJ+GQWJ)))
AS 到期已交比, CONVERT(numeric(10, 2), CONVERT(numeric(10, 2), SUM(GQYJ) * 100) / (SUM(DQYJ+GQYJ+DQWJ+GQWJ)))
AS 过期已交比, CONVERT(numeric(10, 2), CONVERT(numeric(10, 2), SUM(GQWJ) * 100) / (SUM(DQYJ+GQYJ+DQWJ+GQWJ)))
AS 过期未交比
FROM (SELECT * FROM CTE1)
GROUP BY MD001, MD002
HAVING (SUM(DQYJ+GQYJ+DQWJ+GQWJ) <> 0)
消息 156,级别 15,状态 1,第 41 行
关键字 'GROUP' 附近有语法错误。
------解决方案--------------------
SQL code
FROM (SELECT * FROM CTE1) t--加个表名就可以了