主表 vend_mstr
vend_id  vend_name  ....
  A         A1
  B         B1
  C         C1
子表 pt_mstr
vend_id    pt_name
  A          NAME1 
  A          NAME2
  A          NAME3
  B          N1
  B          N2
我現在用查詢可以得到以下記錄集
A           A1        NAME1
A           A1        NAME2
A           A1        NAME3
B           B1        N1
B           B1        N2
C           C1       
但我需要得到以下的結果怎麼搞
A           A1        NAME1,NAME2,NAME3(把子表的內容合並)
B           B1        N1,N2
C           C1        

解决方案 »

  1.   

    select a.vend_id,a.vend_name,b.pt_name 
    from vend_mstr a, pt_mstr b
    where a.vend_id=b.vend_id
    group by b.pt_name
    //注意用 group by
      

  2.   

    Interbase procedure:COMMIT WORK;
    SET AUTODDL OFF;
    SET TERM ^ ;/* Stored procedures */CREATE PROCEDURE "SP_NAME"
    AS
    RETURNS
    (
      "VEND_ID" VARCHAR(25),
      "VEND_NAME" VARCHAR(25),
      "PT_NAME" VARCHAR(75)
    )
    BEGIN EXIT; END ^
    ALTER PROCEDURE "SP_NAME" 
    (
      "VEND_ID" VARCHAR(25),
      "VEND_NAME" VARCHAR(25),
      "PT_NAME" VARCHAR(75)
    )
    AS
    DECLARE VARIABLE V_TEMP VARCHAR(75);
    BEGIN
      FOR
         SELECT VEND_ID, VEND_NAME FROM VEND_MSTR
         INTO :VEND_ID, :VEND_NAME
      DO BEGIN
         FOR
              SELECT PT_NAME FROM PT_MSTR
                    WHERE VEND_ID = :VEND_ID
              INTO :PT_NAME
         DO
            VEND_ID = V_TEMP||;VEND_ID 
    ...
      END 
      
     END
     ^SET TERM ; ^
    COMMIT WORK;
    SET AUTODDL ON;  
    未測試!