mayu
2020/02/22 (土) 23:14:23
a3615@61ad5
( おまけ )
>> 5reito117さんの SQL を添削した正解例は、以下になります。
( 前回申し上げたとおり、煩雑で汚い SQL 文になりますから、この記述はお勧めしません )
SELECT Max( IIf( q.種別 = 0, q.勘定科目コード ) ) As ex1
, Max( IIf( q.種別 = 0, q.勘定科目 ) ) As ex2
, Max( IIf( q.種別 = 0, q.cost ) ) As 金額_資産
, Max( IIf( q.種別 = 1, q.勘定科目コード ) ) As 勘定科目コード
, Max( IIf( q.種別 = 1, q.勘定科目 ) ) As 勘定科目
, Max( IIf( q.種別 = 1, q.revenue ) ) As 金額_負債
FROM
(
SELECT IIf( x.勘定科目コード \ 1000 IN ( 1, 9 ), 0, 1 ) As 種別
, x.勘定科目コード
, x.勘定科目
, x.[金額(資産)] As cost
, x.[金額(負債)] As revenue
, Count(1) As gnum
FROM 貸借対照表 x
, 貸借対照表 y
WHERE (
( x.勘定科目コード Between 1001 And 1999 )
OR
( x.勘定科目コード Between 2000 And 3001 )
OR
x.勘定科目コード IN ( 9002, 9004, 9005 )
)
AND (
( y.勘定科目コード Between 1001 And 1999 )
OR
( y.勘定科目コード Between 2000 And 3001 )
OR
y.勘定科目コード IN ( 9002, 9004, 9005 )
)
AND IIf( x.勘定科目コード \ 1000 IN ( 1, 9 ), 0, 1 )
= IIf( y.勘定科目コード \ 1000 IN ( 1, 9 ), 0, 1 )
AND x.勘定科目コード >= y.勘定科目コード
AND Abs( x.[金額(資産)] ) > 0
AND Abs( y.[金額(資産)] ) > 0
GROUP BY x.勘定科目コード
, x.勘定科目
, x.[金額(資産)]
, x.[金額(負債)]
) q
GROUP BY gnum
ORDER BY gnum ;
通報 ...