b[1]:='虚焊';
b[2]:='漏焊';
b[3]:='PCB断';
b[4]:='PCB连';
b[5]:='错装';
b[6]:='漏装';
b[7]:='器件失效';
b[8]:='锡渣短路';
str:=select sum(sl)as sl ;
if (flag=0) and (flag1=0) and (flag2=0) then
str:=str+' where gzyy='+''''+b[i]+''''
else
str:=str+' and gzyy='+''''+b[i]+'''';
for i:=1 to 8 do
begin
sql.add(str);
edit1.text:=str;
open ;
a[i]:=ADOQuery1.fieldbyname('sl').AsInteger;
end;
请问这个sql怎么去写啊!
b[2]:='漏焊';
b[3]:='PCB断';
b[4]:='PCB连';
b[5]:='错装';
b[6]:='漏装';
b[7]:='器件失效';
b[8]:='锡渣短路';
str:=select sum(sl)as sl ;
if (flag=0) and (flag1=0) and (flag2=0) then
str:=str+' where gzyy='+''''+b[i]+''''
else
str:=str+' and gzyy='+''''+b[i]+'''';
for i:=1 to 8 do
begin
sql.add(str);
edit1.text:=str;
open ;
a[i]:=ADOQuery1.fieldbyname('sl').AsInteger;
end;
请问这个sql怎么去写啊!
b[2]:='漏焊';
b[3]:='PCB断';
b[4]:='PCB连';
b[5]:='错装';
b[6]:='漏装';
b[7]:='器件失效';
b[8]:='锡渣短路';
str:=‘select sum(sl)as sl from table’;//你没加可以访问的表呀
if (flag=0) and (flag1=0) and (flag2=0) then
str:=str+' where gzyy='+''''+b[i]+''''
else
str:=str+' where gzyy='+''''+b[i]+'''';//在这你这个判断语句就没必要了
with adoquery1 do
begin
sql.add(str);//当STR固定了后,这个里边的这一循环,狗屁不如
edit1.text:=str;
open ;应是
for i:=1 to 8 do
begin a[i]:=ADOQuery1.fieldbyname('sl').AsInteger;
end;
end;
b[2]:='漏焊';
b[3]:='PCB断';
b[4]:='PCB连';
b[5]:='错装';
b[6]:='漏装';
b[7]:='器件失效';
b[8]:='锡渣短路';
str:=select sum(sl)as sl ;
if (flag=0) and (flag1=0) and (flag2=0) then
str:=str+' where gzyy='+''''+b[i]+''''
else
str:=str+' and gzyy='+''''+b[i]+'''';
for i:=1 to 8 do
begin
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(str);
edit1.text:=str;
ADOQuery1.open ;
a[i]:=ADOQuery1.fieldbyname('sl').AsInteger;
end;
b[2]:='漏焊';
b[3]:='PCB断';
b[4]:='PCB连';
b[5]:='错装';
b[6]:='漏装';
b[7]:='器件失效';
b[8]:='锡渣短路';
str:='select sum(sl)as sl from a';
if (flag=0) and (flag1=0) and (flag2=0) then
str:=str+' where gzyy='+''''+b[i]+''''
else
str:=str+' and gzyy='+''''+b[i]+'''';
for i:=1 to 8 do
begin
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(str);
edit1.text:=str;
ADOQuery1.open ;
a[i]:=ADOQuery1.fieldbyname('sl').AsInteger;
end;