spdm 为商品代码,dj为商品的单价,kdrq为时间 它们都会有重复的记录出现,包括时间,要的就是怎么读取最近时间的每一种商品的单价

解决方案 »

  1.   

    select max(dj),rkdh from rkdmxb group by rkdh
      

  2.   

    select spdm,dj from biao a where kdrq=(select max(kdrq) from biao where spdm=a.spdm group by spdm)
      

  3.   

    select distinct spdm,dj from rkdmxb xx where kdrq=(select max(kdrq) from rkdmxb where xx.spdm=spdm)
      

  4.   

    是不是如下:
    Select spdm,dj from 表 a where kdrq = (select max(kdrq) from 表 where spdm = a.spdm)
      

  5.   

    select spdm,dj from biao a inner join (select spdm,max(kdrq) as kdrq from biao group by spdm) b on a.spdm=b.spdm and a.kdrq=b.kdrq
      

  6.   

    SELECT rkmxb.jlfs,   
             rkmxb.spdm,
             spmc=spml.spmc,
             spgg=spml.spgg, zgcl=spml.zgcl,
    zdcl=spml.zdcl,         spdj=(select djmc from spdjb where djdm =spml.spdj),
    clkmdm=spml.kmdm,
             rkdh='',    
             xh=1,
    rkmxb.ph,     
             rkmxb.dw,   
             rkmxb.dwxs,   
             dj=case when isnull(rkmxb.sssl,0)=0 then 0 
      else (isnull(rkmxb.je,0)+isnull(rkmxb.ftje,0))/isnull(rkmxb.sssl,0) end,    
             rkmxb.shlv,   
             je=isnull(rkmxb.je,0)+isnull(rkmxb.ftje,0),   
             rkmxb.wse,    
             rkmxb.se,
      

  7.   

    rkmxb.bz,   
             rkmxb.yssl,   
             rkmxb.sssl,   
             dydjxh=rkmxb.xh,
    dydjh=rkmxb.rkdh,   
             rkmxb.sl,
             rkmxb.zk,
             rkmxb.jshj,
       rkmxb.kslbid,
    rkmxb.ftje,
    rkmxb.ftshlv,
    ckdm=rkdb.ckdm,
    gysdm=rkdb.ghdw,
    rkmxb.ftse
        FROM rkmxb,spml,rkdb
       WHERE rkdb.yszt=1 and rkmxb.rkdh=rkdb.rkdh and rkdb.zt=1 and convert(char(6),rkdb.kdrq,112)<=:ny and rkmxb.spdm*=spml.spdm
      

  8.   

    dj=case when isnull(rkmxb.sssl,0)=0 then 0 
    else (isnull(rkmxb.je,0)+isnull(rkmxb.ftje,0))/isnull(rkmxb.sssl,0) end,
    改为历史最近的入库单价
      

  9.   

    表rkdmxb,
    字rkdh 字符型
    ,spdm 字符型
    ,dj   单精度
    ,kdrq  日期型
    你这里面的rkdh是干什么用的?是不是递增而且不重复的?如果是的话这样:
    select spdm,dj,kdrq,rkdh from rkdmxb where rkdh in (select max(rkdh) from rkdmxb group by spdm)