定义变量int Sid (用来接受URL传过的数值)
表:table1  
id(自动唯一int) S_ID(int) name(varchar)   Type(varchar)
1                  12          c            电脑
2                  12          a            键盘
3                  12          a            鼠标
4                  12          c            电脑
5                  12          a            电脑
6                  12          a            鼠标
......问题?按S_ID=12 并且name=a 查询 Type不重复记录(取id最小的)。SQL 语句怎么写??结果应该显示是2、3、5条记录
参考:下面是按S_ID=12  查询 Type不重复记录(取id最小的)的正确SQL语句。现在多了个条件如何加上去?
SqlCommand cmd = new SqlCommand("select * from table1 a where a.S_ID=12 and a.id in (select Min(b.id) from table1 b where b.S_ID=12 and a.name =b.name)");

解决方案 »

  1.   

    select * from table1 a where a.S_ID=12 and a.name=a and a.id in (select Min(b.id) from table1 b where b.S_ID=12 and a.Type=b.Type)该不会是在做题吧举一反三 应该很容易
      

  2.   

    select min(id) id,min(name) name  from table where Sid=12 and name=a group by type
      

  3.   

    1楼的查询结果是 S_ID=12 name=a 的 Type最小记录。不符合。
    要查的是S_ID=12 name=a ,Type的不重复记录
      

  4.   

    是我丢三落四  太晚了   大家 晚安select * from table1 a where a.S_ID=12 and a.name=a and a.id in (select Min(b.id) from table1 b where b.S_ID=12 and b.name=a  and  a.Type=b.Type)
      

  5.   

    create table a
    (
    id int,S_ID int, namea varchar(2) ,Typea varchar(4)
    )
    insert a values(1, 12, 'c', 
    '电脑')
    insert a values(2,12 ,'a', '键盘')
    insert a values(3, 12 ,'a', '鼠标')
    insert a values(4 ,12 ,'c', '电脑')
    insert a values(5 ,12 ,'a', '电脑')
    insert a values(6 ,12, 'a', '鼠标')select min(id),S_ID,namea from a group by S_ID,namea,Typea having namea='a' and S_ID=12
      

  6.   

    select min(id) id, min(name) name, type  from table1 where S_id=12 and name='a' group by typeselect * from table1 a where a.S_ID=12 and a.name='a' and a.id in (select Min(b.id) from table1 b where b.S_ID=12 and b.name='a' and a.Type=b.Type)
      

  7.   

    select min(id) as id,S_ID,namea from a group by S_ID,namea,Typea having namea='a' and S_ID=12
      

  8.   

      select MIN(ID) as ID,name,Type from table1  where name='a' group by name ,TYPE having COUNT(Type)>1 
      union   
      select MIN(ID) as ID,name,Type from table1  where name='a' group by name ,TYPE having COUNT(Type)>0