insert into tab1(sName,sGrade,sOther) select nName,mGrade,case mName when 0 then 0 else nName+mGrade end as sOther from tab2,tab3 (都是整型字段吧)结果是: 1 32 33 1 21 24 1 36 37
insert into tab3(EName,EGrade,EOther) select sName,sGrade,case sName when 0 then 0 else mOther end as EOther from tab1,tab2 where tab1.sName = tab2.mName and tab1.sName in (1,3,0)看看这样行吗? 拜托不要老更换你的表定义
插入:
insert into tab1(a1,a2) select tab2.b1,tab3.c1 from tab2,tab3
where tab2... = tab3...
superjj2002(我真的很菜!) ,我现在是这样写的,你看可以吗?
insert into tab1(a1,a2,a3)
values (select b1 from tab2 where ..,
select c1 from tab3 where ..
//到这里我就不知道如何写下去了!?
superjj2002(我真的很菜!) ,我现在是这样写的,你看可以吗?
insert into tab1(a1,a2,a3)
values (select b1 from tab2 where ..,
select c1 from tab3 where ..
//到这里我就不知道如何写下去了!?
select b1,c1,b1+c1 from tab2,tab3
where ...(难道是where a1<=0 and b1=0)
(sName,sGrade,sOther)(mName,mXX) (mGrade,mXXX)
1 32 33 1 .. 32 ..
3 21 24 3 .. 21 ..
0 36 0 0 .. 36 ..
tab1是要得到的结果,tab2和tab3是存在的表,
sOther =
if sName == 0 sOther = 0;
else sOther = sName+sGrade
select nName,mGrade,case mName
when 0 then 0 else nName+mGrade end as sOther from tab2,tab3
(都是整型字段吧)结果是: 1 32 33
1 21 24
1 36 37
(共9条)真的tab2和tab3没有关联?
tab1和tab2,tab3是有联系的
tab1 tab2 tab3
(sName,sGrade,sOther)(mName,mXX) (mName mGrade,mXXX)
1 32 33 1 .. 1 32 ..
3 21 24 3 .. 3 21 ..
0 36 0 0 .. 0 36 ..
不都是整型,有numeic型的
好,这我就试一下!看行不行,我使用vc++ + ado
不都是整型,有numeic型的
好,这我就试一下!看行不行,我使用vc++ + ado +vfp(dbf)
tab1 tab2 结果表: tab3
(sName,sGrade,sXX) (mName,mOther,mXX) (EName EGrade,Eother)
1 32 .. 1 aa .. 1 32 aa
3 21 .. 3 bb .. 3 21 bb
0 36 .. 0 cc .. 0 0 0
4 89.5 .. 4 dd ..
1:也就是tab1和tab2有一个字段值时一样的(name)
2:when EName = 0,Eother = 0
esle Eother = mOther;
3:只取sName(或mName)指定的值,如where sName like 1 or 3 or 0;
select sName,sGrade,case sName
when 0 then 0 else mOther end as EOther
from tab1,tab2
where tab1.sName = tab2.mName and tab1.sName in (1,3,0)看看这样行吗?
拜托不要老更换你的表定义
如果EOther为char型,那么应该修改为
when 0 then null
看vfp中怎么定义了
(sName,sGrade,sXX) (mName,mOther,mXX) (EName EGrade,Eother)
1 32 .. 1 aa .. 1 32 aa
3 21 .. 3 bb .. 3 21 bb
0 36 .. 0 cc .. 0 0 0
4 89.5 .. 4 dd ..
为什么结果中出现.而且结果中egrade第三行为什么会是0