mayu
2020/01/27 (月) 13:58:30
9b175@61ad5
GROUP BY q.勘定科目コード - IIf( q.勘定科目コード < 5000, 0, 1000 )
並びの肝の部分だと思うのですが、
この条件式でなぜこんなきれいな並びになるかわかりません。
勘定科目コードの 4000番台と5000番台の下3桁同士を
同じグループ( 母集団 )に所属させるための演算になります。
例えば
・ 4000 と 5000 が同じグループ ( 4000 - 0 = 4000, 5000 - 1000 = 4000 )
・ 4011 と 5011 が同じグループ ( 4011 - 0 = 4011, 5011 - 1000 = 4011 )
・ 4999 と 5999 が同じグループ ( 4999 - 0 = 4999, 5999 - 1000 = 4999 )
になります。
( 並び替えも演算結果の数値順になるよう、ORDER BY句に同様の式を記述しています )
したがって、
GROUP BY q.勘定科目コード - IIf( q.勘定科目コード < 5000, 0, 1000 )
ORDER BY q.勘定科目コード - IIf( q.勘定科目コード < 5000, 0, 1000 )
は
GROUP BY q.勘定科目コード Mod 1000
ORDER BY q.勘定科目コード Mod 1000
と記述しても 同様の結果を得ることが可能です。
通報 ...