--TABLE KYKT科研课题:KTID课题ID、KTNAME课题名称、KTJF科研经费
CREATE TABLE KYKT
(KTID INT NOT NULL CONSTRAINT PK_KYRY PRIMARY KEY, KTNAME VARCHAR(10), KTJF INT)INSERT INTO KYKT
SELECT 101,'CAD',150 UNION
SELECT 102,'CAM',30 UNION
SELECT 105,'CAPP',50 UNION
SELECT 203,'CIMS',300 UNION
SELECT 207,'GT',12 UNION
SELECT 215,'ERP',130
 
--TABLE KYQK科研情况:RYID人员ID、KTID课题ID、SBF设备费、GZL工作量、SYJF适用经费
CREATE TABLE KYQK
(RYID INT NOT NULL, KTID int NOT NULL, SBF INT, GZL INT, SYJF INT)INSERT INTO KYQK
SELECT 51,101,15,400,80 UNION
SELECT 51,105,5,180,25 UNION
SELECT 52,101,10,400,70 UNION
SELECT 52,203,40,600,200 UNION
SELECT 58,102,30,5,200 UNION
SELECT 67,207,1,90,12 UNION
SELECT 67,215,25,700,130 UNION
SELECT 69,105,4,200,25 UNION
SELECT 69,203,15,600,100这是两张表,实际记录比这多得多
要检索出每个课题名称对应的所有人员ID
要求显示如下:
课题名称 人员ID1 人员ID2 人员ID3
CAD      51      52
CAM      58
。。
。。
。。
。。
。。
问题就是每个课题名称对应的人员数量不确定

解决方案 »

  1.   

    看看http://community.csdn.net/Expert/topic/4836/4836204.xml?temp=.6176264
      

  2.   

    二个表先连表,得到这样的数据SELECT a.KTNAME,b.RYID
    FROM KYKT a
    INNER JOIN KYQK b
    ON b.KTID=a.KTID即得到
    课题名称 人员ID
    CAD 51
    CAD 52
    CAM 58
    这样的数据
    可以将这语句当作子查询,也可以将得出的结果写入临时表.针对这个虚表(子查询)或临时表,要得到你要求显示的结果,那么情况就跟这个贴子一模一样,这里我就不写语句了,你自己改改就是了
    http://community.csdn.net/Expert/topic/4875/4875601.xml?temp=7.676333E-02