select a.oilno,a.gowordnum,b.liter_total1,c.oilbackliter from oilstationteam a,oilpost_stat b,backcandaystat c 
where a.nodeno=b.nodeno and a.nodeno=c.nodeno and convert(char(10),a.opedate,111)=convert(char(10),b.opedate,111) and convert(char(10),a.opedate,111)=convert(char(10),c.accountdate,111) and a.oilno=b.oilno and a.oilno=c.oilno and a.nodeno='14000697' and convert(char(10),a.opedate,111)='2006/10/14'

解决方案 »

  1.   

    这样得出结果。
     oilno    gowordnum          liter_total1    oilbackliter
     -------- ------------------ --------------- ---------------
     60000305            1514.64         2802.97           40.00
     60000305            1328.33         2802.97           40.00
     60000313            1199.98         1179.98           20.00但这不是我想要的。。我要的是
     oilno    gowordnum          liter_total1    oilbackliter
     -------- ------------------ --------------- ---------------
     60000305            2842.97         2802.97           40.00
     60000313            1199.98         1179.98           20.00
    也就是按oilno分组了。。
      

  2.   

    随便加上这个安段。。唯一的值:
    select nodename from nodeinfor where nodeno='14000697'
      

  3.   

    再说一下,,oilbackliter
    这个有可能会是空值所以据我所知,可能要判断一下了。。多谢,,各位解决一下了。。
      

  4.   

    分组就用
    select ... sum(a.gowordnum) ... group by (a.oilno);
      

  5.   

    select max(a.nodeno),sum(a.gowordnum) gowordnum,b.liter_total1,c.oilbackliter,convert(char(10),a.opedate,111) opedate from oilstationteam a,oilpost_stat b,backcandaystat c where a.nodeno=b.nodeno and a.nodeno=c.nodeno and convert(char(10),a.opedate,111)=convert(char(10),b.opedate,111) and convert(char(10),a.opedate,111)=convert(char(10),c.accountdate,111) and a.oilno=b.oilno and a.oilno=c.oilno and a.nodeno='14000697' and convert(char(10),a.opedate,111)  between '2006/10/01' and '2006/10/31' group by b.liter_total1,c.oilbackliter,a.opedate order by convert(char(10),a.opedate,111) ASC
    这样做的。是得到结果了,可这样会丢数据,因为当oilbackliter为空时可能就会丢一些数据了,我看了下我这的库是这种情况。。
      

  6.   

    得到结果如下:
              gowordnum                                 liter_total1
             oilbackliter    opedate
     -------- ----------------------------------------- ---------------
             --------------- ----------
     14000697                                   1199.98         1179.98
                       20.00 2006/10/14
     14000697                                   2842.97         2802.97
                       40.00 2006/10/14
     14000697                                   3225.08         1979.81
                      100.01 2006/10/20
     14000697                                    977.50          876.69
                      100.81 2006/10/20
     14000697                                   2249.75         2128.39
                      121.36 2006/10/20
     14000697                                    961.95          658.48
                      303.47 2006/10/20
    可问题是oilbackliter为空的也有别的字段的值,也是我想要的。
    这问题这长时间了,没人给解决下吧吗?
    谢谢上面兄弟的解决。感谢。
      

  7.   

    可以尝试去掉重复字段:
    select distinct a.oilno,…………
      

  8.   

    不是重复的问题,,你还没明白我 的意思,,我的意思是这样写出来的不全。。会丢数据,就是说,,oilbackliter为空时数据会不出。。