Microsoft Access 掲示板

同じ内容のフィールド列に別々の結果を表示したい / 1

9 コメント
views
4 フォロー
1

どのようにすればいいか教えて頂きたくお願い致します。

3パターンの SQL を載せておきます。

■ 集計クエリ

SELECT Max( IIf( q.勘定科目コード < 5000, q.勘定科目コード ) )  As ex1
     , Max( IIf( q.勘定科目コード < 5000, q.勘定科目 ) )        As ex2
     , Max( IIf( q.勘定科目コード < 5000, q.[金額(費用)] ) )    As 金額_費用
     , Max( IIf( q.勘定科目コード > 4999, q.勘定科目コード ) )  As 勘定科目コード
     , Max( IIf( q.勘定科目コード > 4999, q.勘定科目 ) )        As 勘定科目
     , Max( IIf( q.勘定科目コード > 4999, q.[金額(収益)] ) )    As 金額_収益
FROM 損益計算書 q
WHERE q.勘定科目コード Between 4000 And 5999
GROUP BY q.勘定科目コード - IIf( q.勘定科目コード < 5000, 0, 1000 )
ORDER BY q.勘定科目コード - IIf( q.勘定科目コード < 5000, 0, 1000 ) ;

 
■ 自己結合

SELECT x.勘定科目コード As ex1
     , x.勘定科目       As ex2
     , x.[金額(費用)]   As 金額_費用
     , y.勘定科目コード
     , y.勘定科目
     , y.[金額(収益)]   As 金額_収益
FROM      損益計算書 x
LEFT JOIN 損益計算書 y
ON
( 
      ( x.勘定科目コード Between 4000 And 4999 ) 
  AND
      x.勘定科目コード = y.勘定科目コード - 1000
)
ORDER BY x.勘定科目コード ;

 
■ 完全外部結合

SELECT y.勘定科目コード As ex1
     , y.勘定科目       As ex2
     , y.[金額(費用)]   As 金額_費用
     , z.勘定科目コード
     , z.勘定科目
     , z.[金額(収益)]   As 金額_収益
FROM
(
    (
        SELECT 勘定科目コード
        FROM 損益計算書
        WHERE 勘定科目コード Between 4000 And 4999
        UNION
        SELECT 勘定科目コード - 1000
        FROM 損益計算書
        WHERE 勘定科目コード Between 5000 And 5999
    ) x
    LEFT JOIN 損益計算書 y
           ON x.勘定科目コード = y.勘定科目コード
)
LEFT JOIN 損益計算書 z
       ON x.勘定科目コード = z.勘定科目コード - 1000
ORDER BY x.勘定科目コード ;
通報 ...