0

私はこのクエリを持っています:

select MONTH(x.status_date) m
, YEAR(x.status_date) y
from [XREF_WET_MASTER] x
join F_ACCESSION_DAILY f
on x.accession_id=f.accession_id
pivot (count(*) for f.REQUISITION_TYPE in ([req1],[req2],[req3])
) as CountofThatTypeofReq

そして、私はこのエラーが発生しています:

「*」付近の構文が正しくありません。

count(*)ライン上

期待される結果は次のとおりです。

+---+------+------+------+------+
| m |  y   | req1 | req2 | req3 |
+---+------+------+------+------+
| 1 | 2010 |   34 |    3 |    6 |
| 2 | 2010 |   56 |    6 |    0 |
| 3 | 2010 |    5 |   33 |    4 |
+---+------+------+------+------+

このピボットに関するガイダンスを提供していただければ幸いです。

4

2 に答える 2

2

の代わりにcount(*)、次のようなものを使用できるはずです。

select *
from
(
  select MONTH(x.status_date) m
    , YEAR(x.status_date) y
    , f.REQUISITION_TYPE
    , f.accession_id
  from [XREF_WET_MASTER] x
  join F_ACCESSION_DAILY f
    on x.accession_id=f.accession_id
) src
pivot 
(
  count(REQUISITION_TYPE) 
  for REQUISITION_TYPE in ([req1],[req2],[req3])
) as CountofThatTypeofReq
于 2012-11-23T22:52:50.350 に答える
1

count(*) の代わりに、ドキュメントによると、ピボットする特定の列を指定する必要があるように見えるので、試してください:

select MONTH(x.status_date) m
, YEAR(x.status_date) y
from [XREF_WET_MASTER] x
join F_ACCESSION_DAILY f
on x.accession_id=f.accession_id
pivot (count(f.accession_id) for f.REQUISITION_TYPE in ([req1],[req2],[req3])
) as CountofThatTypeofReq

...または同様のもの。

于 2012-11-23T22:51:46.910 に答える