Microsoft Access 掲示板

同じ内容のフィールド列に別々の結果を表示したい&数値がゼロ0の列は非表示にしたい / 8

11 コメント
views
4 フォロー
8

( おまけ )

>> 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 ;
通報 ...