上面的问题写错了,应该是下面的有两个表
表aaa
xmh        xmmc
101   差旅费
102       酒水费
103       车船费表bbb
 fbh     fxm       fnd      fxmh     fje
00121   王大海     2003     101     1200
00121   王大海     2003     102      600
00121   王大海     2003     103      700
00122   李大河     2003     101     1200
00122   李大河     2003     102      600
00122   李大河     2003     103      700
00121   王大海     2002     101     1200
00121   王大海     2002     102      600
00121   王大海     2002     103      700   sql 如下select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from bbb inner join aaa on bbb.fxmh=aaa.xmh where  fnd='2003'
结果如下:
 编号    姓名      年度     项目名称    金额
00121   王大海     2003     差旅费     1200
00121   王大海     2003     酒水费     600
00121   王大海     2003     车船费     700
00122   李大河     2003     差旅费     1200
00122   李大河     2003     酒水费     600
00122   李大河     2003     车船费     700select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from bbb inner join aaa on bbb.fxmh=aaa.xmh where  fnd='2002'//和上边一样,就是年度改成了2002。什么也不显示出来。为什么?我用的是sql server 2000

解决方案 »

  1.   

    --用下面的试试
    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from bbb inner join aaa on bbb.fxmh=aaa.xmh where  fnd like '%2002%'
      

  2.   

    是不是inner join 有什么问题?
      

  3.   

    --先试试这个
    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from bbb inner join aaa on bbb.fxmh=aaa.xmh
      

  4.   

    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from bbb inner join aaa on bbb.fxmh=aaa.xmh
    这个只能显示2003年的,我试过了
    我的数据就是上面的数据,其他没有了,有问题的话告诉我,我的数据类型全部是char.
      

  5.   

    还有一个奇怪的问题,就是表bbb中,我用
    update bbb set fxmh='差旅费' where fxmh='101'
    只能改第一个101,其余的101不变,再运行一次,接下来的一个又改了,剩下的还是没有改,这是为什么?
      

  6.   

    --应该是数据输入的问题,试试这个看看结果如何
    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from 
    bbb inner join aaa on ltrim(rtrim(bbb.fxmh))=ltrim(rtrim(aaa.xmh))
      

  7.   

    没有触发器,这个trim也用过了,没有用啊。天哪,救命!这样撞鬼的事情怎么就给我碰到了啊!
      

  8.   

    还有一个奇怪的问题,就是表bbb中,我用
    update bbb set fxmh='差旅费' where fxmh='101'
    只能改第一个101,其余的101不变,再运行一次,接下来的一个又改了,剩下的还是没有改,这是为什么?你是不是在update之前设置了
    set rowcount 1
    如果是设置成上面的那么就对了!
      

  9.   

    没有触发器,这个trim也用过了,没有用啊。天哪,救命!这样撞鬼的事情怎么就给我碰到了啊!
    --那你再试试这个,不写连接条件!
    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from aaa,bbb
      

  10.   

    你们说我的sql有没有什么深层次的纰漏,或者是什么玄之又玄的原因?
      

  11.   

    你是不是在update之前设置了
    set rowcount 1
    如果是设置成上面的那么就对了!没有弄过这个东西。
      

  12.   

    --你把下面的数据copy下来测试一下,完全没问题,如果还不行就只能是你的SQL有问题了!
    create table #aaa(xmh char(3),xmmc char(10))
    insert into #aaa select '101'  , '差旅费'
    union all select '102',       '酒水费'
    union all select '103' ,      '车船费'
    create table #bbb(fbh char(6),fxm char(10),fnd char(4),fxmh char(3),fje char(10))
    insert into #bbb select '00121',   '王大海',     '2003',     '101',     '1200'
    union all select '00121' ,  '王大海' ,    '2003' ,    '102' ,     '600'
    union all select '00121'  , '王大海'  ,   '2003'  ,   '103'  ,    '700'
    union all select '00122'   ,'李大河'   ,  '2003'   ,  '101'   ,  '1200'
    union all select '00122',   '李大河'    , '2003'    , '102'    ,  '600'
    union all select '00122' ,  '李大河'     ,'2003',    '103' ,    '700'
    union all select '00121'  , '王大海'  ,   '2002' ,    '101' ,    '1200'
    union all select '00121' ,  '王大海'   ,  '2002'  ,   '102'  ,    '600'
    union all select '00121'  , '王大海'    , '2002'   ,  '103'   ,   '700'  
    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from #bbb bbb inner join #aaa aaa on bbb.fxmh=aaa.xmh where  fnd='2002'
    select fbh as 编号,fxm as 姓名,fnd as 年度,aaa.xmmc as 项目名称,fje as 金额 from #bbb bbb inner join #aaa aaa on bbb.fxmh=aaa.xmh where  fnd='2003'
      

  13.   

    你的SQL SERVER中病毒了,建议赶快打 SP3
      

  14.   

    实在对不起了,我给大家跪下了,你们怎么打我都可以,我的bbb表的fxmh字段的那个数据写错了,天哪,我自抽18下大嘴巴。