SQLステートメント内でループできるかどうか疑問に思っていました。私の場合、テスト目的で作成した 2 年がありました。2 つ以上のレコードを持つことができるので、年を動的に作成したいと思います。テスト目的で使用したコードは次のとおりです。
Select sum(case when quarter = '2015' then 1 else 0 end) as year2015,
sum(case when quarter = '2016' then 1 else 0 end) as year2016
From testTable
今、私は2015年、2016年、2017年などの年を与えるcfloopを持っています...だから私はこのようなことを試みましたが、うまくいきませんでした:
Select
<cfloop from="#startYear#" to="#endYear#" step="1" index="i">
sum(case when quarter = i then 1 else 0 end) as CONCAT('year',i)
</cfloop>
From testTable
エラーメッセージ:
[Macromedia][SQLServer JDBC Driver][SQLServer]「年」付近の構文が正しくありません。
これが最善の方法であるかどうかはわかりません。誰かが助けてくれるなら、私に知らせてください。