SELECT TOP 900 FIXDATA.SAMPLING_DATETIME, T_DIC_SUBSITE.SITE_NAME, 
      FIXDATA.INFECTANT_ID, AVG(FIXDATA.ACTUAL_VALUE) AS Expr1, 
      FIXDATA.SITE_ID
FROM FIXDATA INNER JOIN
      T_DIC_SUBSITE ON FIXDATA.SITE_ID = T_DIC_SUBSITE.SITE_ID
WHERE (T_DIC_SUBSITE.SITE_NAME = '水库')
GROUP BY FIXDATA.SAMPLING_DATETIME, T_DIC_SUBSITE.SITE_NAME, 
      FIXDATA.INFECTANT_ID, FIXDATA.SITE_ID
得到的结果是:
SAMPLING_DATETIME   SITE_NAME   INFECTANT_ID  Expr1  SITE_ID
2005.02.04 9:00:00   水库          011         56      5001
2005.02.04 9:00:00   水库          012         57      50012005.02.04 9:00:00   水库          013         58      50012005.02.04 9:00:00   水库          014         59      5001
希望得到这样的结果SAMPLING_DATETIME   SITE_NAME   INFECTANT_ID1  INFECTANT_ID2  INFECTANT_ID3  INFECTANT_ID4 Expr1  SITE_ID2005.02.04 9:00:00   水库          011   012   013    014        56      5001

解决方案 »

  1.   

    错了是这样的
    SAMPLING_DATETIME   SITE_NAME   INFECTANT_ID1  INFECTANT_ID2  INFECTANT_ID3  INFECTANT_ID4   SITE_ID
    2005.02.04 9:00:00   水库          56   57   58    59       5001
      

  2.   

    我在说明下数据库表和字段这样的
    FIXDATA 表
    SAMPLING_DATETIME   INFECTANT_ID  SITE_ID  ACTUAL_VALUE
    2005.02.04 9:00:00     011         5001      56
    2005.02.04 9:00:00     012         5001      57
    2005.02.04 9:00:00     013         5001      58
    2005.02.04 9:00:00     014         5001      59
    T_DIC_SUBSITE表
    SITE_NAME  SITE_ID
    水库        5001
    想得到这样的结果
    SAMPLING_DATETIME  SITE_NAME  INFECTANT_ID1  INFECTANT_ID2  INFECTANT_ID3  INFECTANT_ID4   SITE_ID
    2005.02.04 9:00:00   水库      56    57    58    59       5001
      

  3.   

    你這是交叉表,用一條sql是無法實現的.你可以用存儲過程,用程式去調用.也可以在程式中用循環,很簡單的.