先谢谢各位,我这里有张表,
ID TEACHERNAME TERM COURSE DEPARTMENT SHOWID CLASS BEIZHU TERMID
11 A 2009--2010 信息技术 高一段 0 高一(8)班 无 5
12 B 2009--2010 信息技术 高一段 0 高一(7)班 无 5
13 B 2009--2010 信息技术 高一段 0 高一(8)班 无 5
14 C 2009--2010 通用技术 高二段 0 高二(1)班 无 5
15 C 2009--2010 通用技术 高三段 0 高三(1)班 无 5
举个例子,我要如何写SELECT语句才能把符合B的两条记录显示出来,但字段'COURSE’只显示一个值,而不会两个‘信息技术’都显示出来,因为如果两条记录都出来的话,网页里的列表下面也会有两个‘信息技术’,我的QQ34520904,如果可以的话请加我qq,非常感谢。

解决方案 »

  1.   

    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    create table [tb]([ID] int,[TEACHERNAME] varchar(1),[TERM] varchar(10),[COURSE] varchar(8),[DEPARTMENT] varchar(6),[SHOWID] int,[CLASS] varchar(9),[BEIZHU] varchar(2),[TERMID] int)
    go
    insert [tb]
    select 11,'A','2009--2010','信息技术','高一段',0,'高一(8)班','无',5 union all
    select 12,'B','2009--2010','信息技术','高一段',0,'高一(7)班','无',5 union all
    select 13,'B','2009--2010','信息技术','高一段',0,'高一(8)班','无',5 union all
    select 14,'C','2009--2010','通用技术','高二段',0,'高二(1)班','无',5 union all
    select 15,'C','2009--2010','通用技术','高三段',0,'高三(1)班','无',5select ID,TEACHERNAME,TERM,
    COURSE = case id when (select min(id) from tb where [TEACHERNAME] = t.[TEACHERNAME])
    then COURSE else '' end,
    DEPARTMENT,SHOWID,CLASS,BEIZHU,TERMID 
    from [tb] t
    where [TEACHERNAME] = 'B'ID          TEACHERNAME TERM       COURSE   DEPARTMENT SHOWID      CLASS     BEIZHU TERMID
    ----------- ----------- ---------- -------- ---------- ----------- --------- ------ -----------
    12          B           2009--2010 信息技术     高一段        0           高一(7)班    无      5
    13          B           2009--2010          高一段        0           高一(8)班    无      5(2 行受影响)
      

  2.   

    结果差不多是你这样,但是我测试的时候为什么会是操作符丢失,还有我的表名是TEACHERCOURSE,不是TB,是不是跟这有关。
      

  3.   

    贴上你的语句
    select ID,TEACHERNAME,TERM,
    COURSE = case id when (select min(id) from TEACHERCOURSE where [TEACHERNAME] = t.[TEACHERNAME])
    then COURSE else '' end,
    DEPARTMENT,SHOWID,CLASS,BEIZHU,TERMID 
    from TEACHERCOURSE t
    where [TEACHERNAME] = 'B'
      

  4.   

    大哥啊,还是不行,提示“语法错误(操作符丢失)在查询表达式‘COURSE=case id when (select min(id) from teachercourse where [TEACHERNAME]=t.[TEACHERNAME]) THEN COURSE ELSE '' END中”,不知道是什么原因,看表达式都是没问题的啊。对了,我是在ACCESS中进行SQL语句测试的,能否加我vqq啊34520904,万分感谢,这问题困扰了我快一个星期了。