Microsoft Access 掲示板

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

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

2020/01/24 (金) 15:00:34 に私が回答した後
2020/01/24 (金) 19:11:55 に投稿内容が編集されているようですが
その上で未解決ということは、もしかすると SQLの扱いが初めて なのでしょうか。

SQLは、フォームやレポートのレコードソースへも直に記述できるため
記述場所としては、色々あるわけですが

クエリを作るという状況において
SQLをどこに記述すればいいのか わからない
ということでしたら、以下をご覧になるといいでしょう。
 

クエリ SQL文でクエリを編集する: ACCESSとVBAとシステム開発
 ACCESSのクエリデザイン画面は、SQLの構文が分からなくても、感覚的な操作でクエリを作成することが出来る、とても便利なツールです。  SQLを直接書けるレベルになっても、キーボードからテーブル名や項目名を入力しなくて良いので、ちょっとした検索や集計をするのに便利です。  SQLServerやOracleなどの本格的なデータベースを使用するようになっても、ACCESSのクエリの便利さを一度覚えると、ACCESSが手放せなくなります。  簡単なクエリを作る場合、ACCESSのクエリデザインの画面はとても便利ですが、扱う項目数やテーブル数が多くなったり、複雑な条件を入力する場合や、サブクエリを利用したい場合は、デザイン画面ではやりにくいことがあります。  複雑な条件の場合は、グリッド..
ACCESSとVBAとシステム開発

 
なお、

損益計算書

勘定科目コード勘定科目金額(費用)金額(収益)
4001仕入25000-25000
4006通品費7000-7000
4010旅費交通費-1400014000
5006受取配当金-100100
5008有価証券利息00

 
上記のように、勘定科目コードの属性毎に欠番がある場合、
 

Expr1000Expr1001金額(費用)勘定科目コード勘定科目金額(収益)
4001仕入25000
4006通品費70005006受取配当金100
5008有価証券利息0
4010旅費交通費-14000

 
下3桁で完全外部結合するのではなく
 

Expr1000Expr1001金額(費用)勘定科目コード勘定科目金額(収益)
4001仕入250005006受取配当金100
4006通品費70005008有価証券利息0
4010旅費交通費-14000

 
同属の科目を昇順に並べるだけの場合は、SQLのロジックにもう一工夫必要になります。
 

SELECT Max( IIf( q.勘定科目コード < 5000, q.勘定科目コード ) )  As ex1
     , Max( IIf( q.勘定科目コード < 5000, q.勘定科目 ) )        As ex2
     , Max( IIf( q.勘定科目コード < 5000, q.cost ) )            As 金額_費用
     , Max( IIf( q.勘定科目コード > 4999, q.勘定科目コード ) )  As 勘定科目コード
     , Max( IIf( q.勘定科目コード > 4999, q.勘定科目 ) )        As 勘定科目
     , Max( IIf( q.勘定科目コード > 4999, q.revenue ) )         As 金額_収益
FROM
(
    SELECT x.勘定科目コード
         , x.勘定科目
         , x.[金額(費用)] As cost
         , x.[金額(収益)] As revenue
         , Count(1)       As gnum
    FROM 損益計算書 x
       , 損益計算書 y
    WHERE x.勘定科目コード Between 4000 And 5999
      AND y.勘定科目コード Between 4000 And 5999
      AND x.勘定科目コード \ 1000 = y.勘定科目コード \ 1000
      AND x.勘定科目コード >= y.勘定科目コード
    GROUP BY x.勘定科目コード
           , x.勘定科目
           , x.[金額(費用)]
           , x.[金額(収益)]
) q
GROUP BY gnum
ORDER BY gnum ;

 
ただし、データベースというのは 本来
第三者が見ても「 行単位でデータ構造を把握できる形 」になっている必要があり、
関連のない複数のデータが同じ行に並んでいるのは、不自然と言っていいでしょう。

投稿文のタグに クエリ・フォーム・レポート の3つが付与されていることから
どのオブジェクトにおいても段組で表示したい のだと想像しますが
コードの体系別に2列表示したいだけなら、レポートのみで行うことをお薦めします。

通報 ...
  • 3

    mayuさん、いつも回答ありがとうございます。
    質問の編集は私が管理者権限で行いました。見やすくする為にテーブルをマークダウン書式にしました。

    4

    hatenaさん、こんにちは。
    各方面でのご活躍、いつも拝見させていただいております。
    管理者権限での表の編集、承知いたしました。わざわざのご連絡、ありがとうございます。