Select T1.Item_No, T1.VENDOR_NO, T1.PRICE 
From Item as T1, Item as T2
Where T1.Item = T2.Item and T1.Price < T2.Price
可以吗?

解决方案 »

  1.   

    1,2:SELECT a.Item_No, Item.Vendor_No, a.tPrice AS Price
    FROM (Select Item_No,Vendor_NO,min(Price)
        group by Item_No,Vendor_No) AS a 
        LEFT JOIN item 
        ON (a.tprice=item.price) AND (a.Item_No=item.Item_No)
    3:参照1,2
      

  2.   

    楼上的,你的解决方法有没有在SQL里运行过的啊?根本不能用。这个问题我想好久了,我认为,没办法在一个select句子实现这种功能了,只能分开。先建一个cursor
    declare cur_Item cursor for
    select itemno,min(price) from tab_1 group by itemno
    然后再用 select top 1的方法,选出其中一个。
      

  3.   

    其实你的三个问题不就是一个问题吗?为每一类找出一个最小价格的记录,给你一条select语句吧:select A.ITEM_NO ,min(A.VENDOR_NO),min(.....),A.PRICE
    from Table A
    where A.PRICE=
    (SELECT MIN(B.PRICE) FROM TABLE B
      WHERE A.ITEM_NO=B.ITEM_NO)
    GROUP BY A.ITEM_NO,A.PRICE
      

  4.   

    to 阿门
    没怎么简单吧
    select * 
    from table1 a inner join (select top 1 c.item_no ,c.vendor from table1 c join  (select  item_no ,min(price) group by item_no
     from table1) d  where c.item_no = d.item_no and c.price = d.price) b
    where a.item_NO = b.item_no and a.vendor = b.vendor
    有些地方可能有点小问题,但这样写肯定没错  
      

  5.   

    前面有点错误,top 1 可改为 distinct
      

  6.   

    已经解决了。答案如下:
     select * from (select item_no,min(vendor) as vendor from( select b.item_no,b.vendor,b.price from  
        (select item_no ,min(price) as minprice from table1 group by item_no) a  inner join table1 b on a.item_no = b.item_no  and a.minprice = b.price) x group by x.item_no) y join table1 z on y.item_no = z.item_no and y.vendor = z.vendor
    *为你的表的列,必须一项项写上去。
    真没想到有这么变态的sql语句。我建议你写一个view