以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] sql语句求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178449)

--  作者:dj68301367
--  发布时间:2022/7/5 13:58:00
--  [求助] sql语句求助

错误提示:

.NET Framework 版本:4.0.30319.42000

Foxtable 版本:2022.5.27.2

错误所在事件:

详细错误信息:

\'(\' 附近有语法错误。


下面红色内的代码单独运行没有问题。


sel ect c.*,d.数量 as 期初库存,d.数量 + c.进仓数量 + c.出仓数量) as 结存数量 from { S ELECT a.JCCDate,a.名称,SUM(a.JCC数量) AS 进仓数量, (SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 < 0 and 名称 = a.名称 and JCCDate = a.JCCDate ) AS 出仓数量 FROM {KC_JCCMX} AS a where a.jcc数量 > 0  and a.仓库名称 = \'祼机成品\' and a.JCCDate BETWEEN  \'2022-06-26\' and \'2022-06-30\' GROUP BY a.JCCDate ,a.名称 order BY a.JCCDate ,a.名称  } As c left Join {KC_QC} As d On c.名称 = d.名称 And c.仓库名称 = d.仓库名称


--  作者:有点蓝
--  发布时间:2022/7/5 14:00:00
--  
fromS ELECT a.JCCDate,a.名称,SUM(a.JCC数量) AS 进仓数量, (SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 < 0 and 名称 = a.名称 and JCCDate = a.JCCDate ) AS 出仓数量 FROM {KC_JCCMX} AS a where a.jcc数量 > 0  and a.仓库名称 = \'祼机成品\' and a.JCCDate BETWEEN  \'2022-06-26\' and \'2022-06-30\' GROUP BY a.JCCDate ,a.名称 order BY a.JCCDate ,a.名称  ) As 
--  作者:dj68301367
--  发布时间:2022/7/5 14:05:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.5.27.2
错误所在事件:
详细错误信息:
关键字 \'order\' 附近有语法错误。
\'(\' 附近有语法错误。

order BY a.JCCDate ,a.名称 删除了,还提示

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.5.27.2
错误所在事件:
详细错误信息:
关键字 \'As\' 附近有语法错误。
\'(\' 附近有语法错误。

--  作者:有点蓝
--  发布时间:2022/7/5 14:13:00
--  
把里面所有的全角的括号改为半角的括号
--  作者:dj68301367
--  发布时间:2022/7/5 14:23:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.5.27.2
错误所在事件:
详细错误信息:
\')\' 附近有语法错误。
\'(\' 附近有语法错误。
老师,一个一个改测试不行,全改了也不行。
sele ct c.*,d.数量 as 期初库存,(d.数量 + c.进仓数量 + c.出仓数量) as 结存数量 from ( SE LECT a.JCCDate,a.名称,SUM(a.JCC数量) AS 进仓数量  , (SEL ECT SUM(JCC数量) FROM (KC_JCCMX) where jcc数量 < 0 and 名称 = a.名称 and JCCDate = a.JCCDate ) AS 出仓数量 FROM (KC_JCCMX) AS a where a.jcc数量 > 0  and a.仓库名称 = \'祼机成品\' and a.JCCDate BETWEEN  \'2022-06-26\' and \'2022-06-30\' GROUP BY a.JCCDate ,a.名称 ) As c left Join (KC_QC) As d On c.名称 = d.名称 And c.仓库名称 = d.仓库名称

--  作者:有点蓝
--  发布时间:2022/7/5 15:10:00
--  
还是有全角的括号
sele ct c.*,d.数量 as 期初库存,d.数量 + c.进仓数量 + c.出仓数量 
--  作者:dj68301367
--  发布时间:2022/7/9 9:59:00
--  
谢谢老师,现在碰到新的问题了
得到的结果没有去重,

sele ct  TOP (100) PERCENT c.* ,(isnull(c.期初库存,0) + isnull(c.进仓数量,0) + isnull(c.出仓数量,0)) as 结存数量 from ( SEL ECT 名称,仓库名称,数量 as 期初库存, 0 as 进仓数量,0 as 出仓数量 FROM {KC_QC}  UNION  SEL ECT a.名称,a.仓库名称,0 as 期初库存  , ( SELE CT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 > 0 and 名称 = a.名称 and 仓库名称 = a.仓库名称 ) AS 进仓数量 , ( SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 < 0 and 名称 = a.名称 and 仓库名称 = a.仓库名称 ) AS 出仓数量 FROM {KC_JCCMX} AS a where  a.仓库名称 = \'祼机成品\' and (a.JCCDate BETWEEN  \'2022-06-26\' and \'2022-06-30\') GROUP BY a.名称,a.仓库名称  ) As c

--  作者:有点蓝
--  发布时间:2022/7/9 10:22:00
--  
select  distinct c.* ,(isnull(c.期初库存,0.....
--  作者:dj68301367
--  发布时间:2022/7/9 10:48:00
--  
 老师,问题在这段代码里,这里就重复了。
SEL ECT 名称,仓库名称,数量 as 期初库存, 0 as 进仓数量,0 as 出仓数量 FROM {KC_QC} 
UNION  
SEL ECT a.名称,a.仓库名称,0 as 期初库存  , 
( SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 > 0 and 名称 = a.名称 and 仓库名称 = a.仓库名称 ) AS 进仓数量 , 
( SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 < 0 and 名称 = a.名称 and 仓库名称 = a.仓库名称 ) AS 出仓数量 
FROM {KC_JCCMX} AS a where  a.仓库名称 = \'祼机成品\' and (a.JCCDate BETWEEN  \'2022-06-26\' and \'2022-06-30\') GROUP BY a.名称,a.仓库名称

--  作者:有点蓝
--  发布时间:2022/7/9 10:51:00
--  
select  c.* ,(isnull(c.期初库存,0) + isnull(c.进仓数量,0) + isnull(c.出仓数量,0)) as 结存数量 from (
select  distinct * from (SEL ECT 名称,仓库名称,数量 as 期初库存, 0 as 进仓数量,0 as 出仓数量 FROM {KC_QC} 
UNION  
SEL ECT a.名称,a.仓库名称,0 as 期初库存  , 
( SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 > 0 and 名称 = a.名称 and 仓库名称 = a.仓库名称 ) AS 进仓数量 , 
( SEL ECT SUM(JCC数量) FROM {KC_JCCMX} where jcc数量 < 0 and 名称 = a.名称 and 仓库名称 = a.仓库名称 ) AS 出仓数量 
FROM {KC_JCCMX} AS a where  a.仓库名称 = \'祼机成品\' and (a.JCCDate BETWEEN  \'2022-06-26\' and \'2022-06-30\') GROUP BY a.名称,a.仓库名称) as a) as c