是要做选择,还是更新或插入啊?
插入:
insert into tab1(a1,a2) select tab2.b1,tab3.c1 from tab2,tab3
where tab2... = tab3...

解决方案 »

  1.   

    是要做选择,还是更新或插入啊?
    插入:
    insert into tab1(a1,a2) select tab2.b1,tab3.c1 from tab2,tab3
    where tab2... = tab3...
      

  2.   

    3个表是没有联系的,现在,有多了一种关系。tab1(a1,a2,a3),其中a3字段为a1和a2字段的和!并且是这样的iif(a3<=0,0,a1+a2)
     superjj2002(我真的很菜!) ,我现在是这样写的,你看可以吗?
     
     insert into tab1(a1,a2,a3)
     values (select b1 from tab2 where ..,
             select c1 from tab3 where ..
             //到这里我就不知道如何写下去了!?
      

  3.   

    3个表是没有联系的,现在,有多了一种关系。tab1(a1,a2,a3),其中a3字段为a1和a2字段的和!并且是这样的a3 = iif(a1<=0,0,a1+a2)
     superjj2002(我真的很菜!) ,我现在是这样写的,你看可以吗?
     
     insert into tab1(a1,a2,a3)
     values (select b1 from tab2 where ..,
             select c1 from tab3 where ..
             //到这里我就不知道如何写下去了!?
      

  4.   

    a3 = iif(a1<=0,0,a1+a2) 是什么意思?insert into tab1(a1,a2,a3)
    select b1,c1,b1+c1 from tab2,tab3
    where ...(难道是where a1<=0 and b1=0)
      

  5.   

    你把你的a,b,c表弄几个样本数据,以及你想要的结果。
      

  6.   

    tab1                  tab2       tab3
    (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
      

  7.   

    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
        
       (共9条)真的tab2和tab3没有关联?
      

  8.   

    o!
    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    ..
      

  9.   

    谢谢了你们2个
    不都是整型,有numeic型的
    好,这我就试一下!看行不行,我使用vc++ + ado
      

  10.   

    谢谢了你们2个
    不都是整型,有numeic型的
    好,这我就试一下!看行不行,我使用vc++ + ado +vfp(dbf)
      

  11.   

    把表写清楚点
    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;
      

  12.   

    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)看看这样行吗?
    拜托不要老更换你的表定义
      

  13.   

    上面的好像有错
    如果EOther为char型,那么应该修改为

    when 0 then null

    看vfp中怎么定义了
      

  14.   

    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   ..      
    为什么结果中出现.而且结果中egrade第三行为什么会是0