select 商品,数量, 单价 from 发票表 a,发票明细表 b where a.发票id=b.发票id 
and a.时间=(select max(时间) from 发票表 m,发票明细表 d where m.发票id=d.发票id and d.商品=b.商品)

解决方案 »

  1.   

    在xiaomeixiang(Little Sheep)的后面加一句就可以:select 商品,数量, 单价,时间 --直接加上就可以
    from 发票表 a,发票明细表 b 
    where a.发票id=b.发票id and a.时间=(
                select max(时间) from 发票表 m,发票明细表 d 
                where m.发票id=d.发票id and d.商品=b.商品
    )
      

  2.   

    create table 发票表(发票id int identity(1,1),发票号 varchar(20),时间 datetime)
    insert 发票表 select 'a1','2005-1-03'
    union all select 'a2','2005-04-06'
    union all select 'a3','2005-07-01'
    create table 发票明细表(对应发票id int, 商品 varchar(20),数量 int,单价 numeric)
    insert 发票明细表 select 1,'猪',20,400
    union all select 1,'羊',30,300
    union all select 1,'鸡',40,50
    union all select 2,'鸡',50,38
    union all select 2,'羊',60,20
    union all select 3,'猪',70,500
    --测试
    select 商品,数量,单价,时间 
    from 发票表 a,发票明细表 b 
    where a.发票id=b.对应发票id and a.时间=(
                select max(时间) from 发票表 m,发票明细表 d 
                where m.发票id=d.对应发票id and d.商品=b.商品)
    --删除测试数据
    drop table 发票表,发票明细表--测试结果
    商品                   数量          单价                   时间                                                     
    -------------------- ----------- -------------------- ------------------------------------------------------ 
    猪                    70          500                  2005-07-01 00:00:00.000
    羊                    60          20                   2005-04-06 00:00:00.000
    鸡                    50          38                   2005-04-06 00:00:00.000phantomMan(我不吸烟,我讨厌别人吸烟)有点错误!
      

  3.   

    xiaomeixiang(Little Sheep) 实际上就加上一个"时间"就可以了
    如下:
    select 商品,数量, 单价,时间
      from 发票表 a,发票明细表 b where a.发票id=b.对应发票id 
    and a.时间=(select max(时间) from 发票表 m,发票明细表 d where m.发票id=d.对应发票id and d.商品=b.商品)
      

  4.   

    select 商品,数量, 单价,时间
      from 发票表 a,发票明细表 b where a.发票id=b.对应发票id 
    and a.时间=(select max(时间) from 发票表 m,发票明细表 d where m.发票id=d.对应发票id and d.商品=b.商品)