有一个表是大概是这样的:
sn      context        groupname     tm
1       ABCDE            1          2005-02-01
2       abc              1          2005-03-01
3       abc1             1          2005-03-01
4       abc2             0          2005-04-01
5       abc3             0          2005-04-01
6       abc4             1          2005-04-01
7       abc5             0          2005-05-01
现在想通个一个查询语句后得到下面的结果(nTemp1~12表示12个月)
groupname        nTemp1  nTemp2  nTemp3  nTemp4  nTemp5  nTemp6  nTemp7  nTemp8  nTemp9  nTemp10  nTemp11  nTemp12
   0               0       0       0       2        1       0       0       0       0       0        0        0
   1               0       1       2       1        0       0       0       0       0       0        0        0请问这个查询语句怎么写啊?

解决方案 »

  1.   

    没看明白你的意思groupname这个列没给出来
      

  2.   

    刚刚那个在IE里看不清楚,下面这个可能要清楚点
    groupname  n1  n2  n3  n4  n5  n6  n7  n8  n9  n10  n11  n12
       0       0   0   0   2   1   0   0   0   0   0    0     0
       1       0   1   2   1   0   0   0   0   0   0    0     0
      

  3.   

    刚刚那个在IE里看不清楚,下面这个可能要清楚点
    groupname  n1  n2  n3  n4  n5  n6  n7  n8  n9  n10  n11  n12
       0       0   0   0   2   1   0   0   0   0   0    0     0
       1       0   1   2   1   0   0   0   0   0   0    0     0
      

  4.   

    刚刚那个在IE里看不清楚,下面这个可能要清楚点
    groupname  n1  n2  n3  n4  n5  n6  n7  n8  n9  n10  n11  n12
       0              0   0   0   2   1   0   0   0   0   0    0     0
       1              0   1   2   1   0   0   0   0   0   0    0     0
      

  5.   

    TRANSFORM Count(tb1.sn) AS snCount
    SELECT tb1.groupname
    FROM tb1
    GROUP BY tb1.groupname
    PIVOT "nTemp" & Format([tm],"m") In ("nTemp1","nTemp2","nTemp3","nTemp4","nTemp5","nTemp6","nTemp7","nTemp8","nTemp9","nTemp10","nTemp11","nTemp12");
      

  6.   

    TO:of123() 
    看不懂你的回复,那个PIVOT不知道是什么命令,且我试运行了一下,报错.
    能再说明一下吗?
      

  7.   

    SELECT a.groupname, SUM(b.groupname) AS nTemp2, SUM(c.groupname) AS Expr1, 
          SUM(d.groupname) AS nTemp3
    FROM t1 a LEFT OUTER JOIN
          t1 b ON b.tm BETWEEN '2005-02-01' AND '2005-02-28' AND 
          a.sn = b.sn LEFT OUTER JOIN
          t1 c ON c.tm BETWEEN '2005-03-01' AND '2005-03-31' AND 
          a.sn = c.sn LEFT OUTER JOIN
          t1 d ON d.tm BETWEEN '2005-04-01' AND '2005-04-30' AND a.sn = d.sn
    GROUP BY a.groupname
      

  8.   

    PIVOT是Access中的关键字,其它的数据库不支持,上面做了从2-4月的数据,你可以依次类推做出1-12月的数据。