上次我记得你问过啊 可以用MASTER..SPT_VALUES做一个虚拟表  LEFT JOIN 啊

解决方案 »

  1.   

    SELECT
        a.id, a.clientName, 
        SUM(CASE WHEN DATEPART(year, b.GoDate)='2014' AND DATEPART(MONTH,b.GoDate)='1' THEN c.Hj ELSE 0 END) AS  [1月份],
        SUM(CASE WHEN DATEPART(year, b.GoDate)='2014' AND DATEPART(MONTH,b.GoDate)='2' THEN c.Hj ELSE 0 END) AS  [2月份],
        SUM(CASE WHEN DATEPART(year, b.GoDate)='2014' AND DATEPART(MONTH,b.GoDate)='3' THEN c.Hj ELSE 0 END) AS  [3月份]
    ...
    FROM
        ClientTable AS a
    LEFT JOIN (CoderTable AS b INNER JOIN JpddTable as c ON c.DdId=b.id) ON a.id=c.ClientId
      

  2.   

    用compute子句。具体还有一个好像是roll函数,记不清了,这个函数就是针对大数据的。自己查查吧。