以上是我用delphi时的问题,sql.add后面不知是哪里错误,请哪位高手指点,非常感激! 5

ifradiobutton1.Checked=truethenbeginwithAdoquery4dobeginClose;SQL.Clear;SQL.Add(''''S... if radiobutton1.Checked= true then
begin
with Adoquery4 do
begin
Close;
SQL.Clear;
SQL.Add(''''SELECT RTRIM(G.TG004) 品号,RTRIM(G.TG005) 品名,RTRIM(G.TG006) 规格,G.TG007 单位,convert(numeric(18,4),CASE fy WHEN ''400'' THEN
(CASE MAX(T.HT003) WHEN 0 THEN MAX(T.HT005) ELSE MAX(T.HT003) END) WHEN ''407'' THEN (CASE MAX(T.HT002) WHEN 0 THEN MAX(T.HT005) ELSE MAX(T.HT002) END) ELSE
MAX(T.HT005) END) 单重,0 理论数量,0.00 差异率, convert(numeric(18,0),SUM(G.TG013)) 验收数量,convert(numeric(18,2),SUM(G.TG030)) 验收重量,NULL 工序代号,NULL 供应商,
NULL 入库库别,F.TF003 确认日期,G.TG001+''-''+G.TG002+''-''+MAX(G.TG003) 单号,NULL 托外单号,MAX(G.TG020) 批号 FROM MOCTF F LEFT JOIN MOCTG G ON F.TF001=G.TG001 AND
F.TF002=G.TG002 LEFT JOIN ZZUNITWEIGHTA T ON G.TG004=T.HT001 WHERE F.TF006=''Y'' AND F.TF003>=''20101014'' and F.TF003<=''20101020'' AND G.TG010=''400'' AND
G.TG001+''-''+G.TG002+''-''+G.TG003 NOT IN (SELECT TA033 FROM MOCTA WHERE TA033<>'') GROUP BY G.TG001,G.TG002,G.TG004,G.TG005,G.TG006,G.TG007,F.TF003 ORDER BY 单号'''');
parameters.ParamByName('fy').Value:=Trim(Edit1.Text);
Open;
end;

以上是我用delphi时的问题,sql.add后面不知是哪里错误,请哪位高手指点,非常感激!
构建
[错误] zhl.pas(142): Unterminated string
[错误] zhl.pas(143): Missing operator or semicolon
[错误] zhl.pas(143): 'OF' expected but identifier 'HT003' found
[错误] zhl.pas(143): ')' expected but identifier 'WHEN' found
[错误] zhl.pas(143): Statement expected, but expression of type 'String' found
[错误] zhl.pas(143): 'OF' expected but identifier 'HT002' found
[错误] zhl.pas(143): 'END' expected but ')' found
[错误] zhl.pas(144): 'END' expected but ')' found
[错误] zhl.pas(144): Illegal character in input file: '论' ($C2DB)
[错误] zhl.pas(144): Illegal character in input file: '差' ($B2EE)
[错误] zhl.pas(144): Illegal character in input file: '验' ($D1E9)
[错误] zhl.pas(144): Illegal character in input file: '验' ($D1E9)
[错误] zhl.pas(144): Illegal character in input file: '工' ($B9A4)
[错误] zhl.pas(144): Illegal character in input file: '供' ($B9A9)
[错误] zhl.pas(145): Illegal character in input file: '入' ($C8EB)
[错误] zhl.pas(145): Illegal character in input file: '确' ($C8B7)
[错误] zhl.pas(145): Illegal character in input file: '单' ($B5A5)
[错误] zhl.pas(145): Illegal character in input file: '外' ($CDE2)
[错误] zhl.pas(145): Illegal character in input file: '批' ($C5FA)
[错误] zhl.pas(147): Illegal character in input file: '单' ($B5A5)
SELECT RTRIM(G.TG004) 品号,RTRIM(G.TG005) 品名,RTRIM(G.TG006) 规格,G.TG007 单位,convert(numeric(18,4),CASE '400' WHEN '400' THEN
(CASE MAX(T.HT003) WHEN 0 THEN MAX(T.HT005) ELSE MAX(T.HT003) END) WHEN '407' THEN (CASE MAX(T.HT002) WHEN 0 THEN MAX(T.HT005) ELSE MAX(T.HT002) END) ELSE
MAX(T.HT005) END) 单重,0 理论数量,0.00 差率, convert(numeric(18,0),SUM(G.TG013)) 验收数量,convert(numeric(18,2),SUM(G.TG030)) 验收重量,NULL 工序代号,NULL 供应商,
NULL 入库库别,F.TF003 确认日期,G.TG001+'-'+G.TG002+'-'+MAX(G.TG003) 单号,NULL 托外单号,MAX(G.TG020) 批号 FROM MOCTF F LEFT JOIN MOCTG G ON F.TF001=G.TG001 AND
F.TF002=G.TG002 LEFT JOIN ZZUNITWEIGHTA T ON G.TG004=T.HT001 WHERE F.TF006='Y' AND F.TF003>='20101014' and F.TF003<='20101020' AND G.TG010='400' AND
G.TG001+'-'+G.TG002+'-'+G.TG003 NOT IN (SELECT TA033 FROM MOCTA WHERE TA033<>'') GROUP BY G.TG001,G.TG002,G.TG004,G.TG005,G.TG006,G.TG007,F.TF003 ORDER BY 单号

以上是我查询分析器的内容,可以正常查询
展开
 我来答
agully
2010-10-21 · TA获得超过545个赞
知道小有建树答主
回答量:494
采纳率:0%
帮助的人:374万
展开全部
引号问题,你showmessage下你在delphi里的那段,放到查询分析器里就知道哪错了,比如:
CmdStr := ''''SELECT RTRIM(G.TG004) 品号,RTRIM(G.TG005) 品名,RTRIM(G.TG006) 规格,G.TG007 单位,convert(numeric(18,4),CASE fy WHEN ''400'' THEN
(CASE MAX(T.HT003) WHEN 0 THEN MAX(T.HT005) ELSE MAX(T.HT003) END) WHEN ''407'' THEN (CASE MAX(T.HT002) WHEN 0 THEN MAX(T.HT005) ELSE MAX(T.HT002) END) ELSE
MAX(T.HT005) END) 单重,0 理论数量,0.00 差异率, convert(numeric(18,0),SUM(G.TG013)) 验收数量,convert(numeric(18,2),SUM(G.TG030)) 验收重量,NULL 工序代号,NULL 供应商,
NULL 入库库别,F.TF003 确认日期,G.TG001+''-''+G.TG002+''-''+MAX(G.TG003) 单号,NULL 托外单号,MAX(G.TG020) 批号 FROM MOCTF F LEFT JOIN MOCTG G ON F.TF001=G.TG001 AND
F.TF002=G.TG002 LEFT JOIN ZZUNITWEIGHTA T ON G.TG004=T.HT001 WHERE F.TF006=''Y'' AND F.TF003>=''20101014'' and F.TF003<=''20101020'' AND G.TG010=''400'' AND
G.TG001+''-''+G.TG002+''-''+G.TG003 NOT IN (SELECT TA033 FROM MOCTA WHERE TA033<>'') GROUP BY G.TG001,G.TG002,G.TG004,G.TG005,G.TG006,G.TG007,F.TF003 ORDER BY 单号'''';
showmessage(CmdStr);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2010-10-22 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:618万
展开全部
var
str: string;
begin
str := 'SELECT RTRIM(G.TG004) 品号,RTRIM(G.TG005) 品名,RTRIM(G.TG006) 规格,G.TG007 单位, '
+ ' convert(numeric(18,4),CASE ''400'' WHEN ''400'' THEN (CASE MAX(T.HT003) WHEN 0 THEN'
+ ' MAX(T.HT005) ELSE MAX(T.HT003) END) WHEN ''407'' THEN (CASE MAX(T.HT002) WHEN 0 THEN '
+ ' MAX(T.HT005) ELSE MAX(T.HT002) END) ELSE MAX(T.HT005) END) 单重,0 理论数量,0.00 差率,'
+ ' convert(numeric(18,0),SUM(G.TG013)) 验收数量,convert(numeric(18,2),SUM(G.TG030)) 验收重量,'
+ ' NULL 工序代号,NULL 供应商, NULL 入库库别,F.TF003 确认日期,G.TG001+''-''+G.TG002+''-''+ '
+ ' MAX(G.TG003) 单号,NULL 托外单号,MAX(G.TG020) 批号 FROM MOCTF F LEFT JOIN MOCTG G ON F.TF001 = G.TG001'
+ ' AND F.TF002=G.TG002 LEFT JOIN ZZUNITWEIGHTA T ON G.TG004=T.HT001 WHERE F.TF006=''Y'''
+ ' AND F.TF003>=''20101014'' and F.TF003<=''20101020'' AND G.TG010=''400'' AND G.TG001+''-''+G.TG002+''-''+'
+ ' G.TG003 NOT IN (SELECT TA033 FROM MOCTA WHERE TA033<>'') GROUP BY G.TG001,G.TG002,G.TG004, '
+ ' G.TG005,G.TG006,G.TG007,F.TF003 ORDER BY 单号';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangdaizuo
2010-10-22 · TA获得超过515个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:193万
展开全部
至少你的《MAX(T.HT005) END) 单重,0 理论数量,0.00 差异率, convert(numeric(18,0),SUM(G.TG013)) 验收数量,convert(numeric(18,2),SUM(G.TG030)) 验收重量,NULL 工序代号,NULL 供应商,
NULL 入库库别,F.TF003 确认日期,G.TG001+''-''+G.TG002+''-''+MAX(G.TG003) 单号,NULL 托外单号,MAX(G.TG020) 批号 FROM MOCTF F LEFT JOIN MOCTG G ON 》里面有字体和空格方面的错误,英文和中文字体混淆 ,
字段名和中文字体之间要加空格哈。 这段代码你有可能是复制网上的内容而出现上面的错误!!!!!!!!!1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
perock
2010-10-21 · TA获得超过971个赞
知道小有建树答主
回答量:971
采纳率:50%
帮助的人:795万
展开全部
是不是多了引号? 把语句复制到SQL查询分析器中测试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式