mayu
2020/01/25 (土) 09:05:50
9b175@61ad5
2020/01/24 (金) 15:00:34 に私が回答した後
2020/01/24 (金) 19:11:55 に投稿内容が編集されているようですが
その上で未解決ということは、もしかすると SQLの扱いが初めて なのでしょうか。
SQLは、フォームやレポートのレコードソースへも直に記述できるため
記述場所としては、色々あるわけですが
クエリを作るという状況において
SQLをどこに記述すればいいのか わからない
ということでしたら、以下をご覧になるといいでしょう。
なお、
損益計算書
勘定科目コード | 勘定科目 | 金額(費用) | 金額(収益) |
---|---|---|---|
4001 | 仕入 | 25000 | -25000 |
4006 | 通品費 | 7000 | -7000 |
4010 | 旅費交通費 | -14000 | 14000 |
5006 | 受取配当金 | -100 | 100 |
5008 | 有価証券利息 | 0 | 0 |
上記のように、勘定科目コードの属性毎に欠番がある場合、
Expr1000 | Expr1001 | 金額(費用) | 勘定科目コード | 勘定科目 | 金額(収益) |
---|---|---|---|---|---|
4001 | 仕入 | 25000 | |||
4006 | 通品費 | 7000 | 5006 | 受取配当金 | 100 |
5008 | 有価証券利息 | 0 | |||
4010 | 旅費交通費 | -14000 |
下3桁で完全外部結合するのではなく
Expr1000 | Expr1001 | 金額(費用) | 勘定科目コード | 勘定科目 | 金額(収益) |
---|---|---|---|---|---|
4001 | 仕入 | 25000 | 5006 | 受取配当金 | 100 |
4006 | 通品費 | 7000 | 5008 | 有価証券利息 | 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列表示したいだけなら、レポートのみで行うことをお薦めします。
通報 ...
mayuさん、いつも回答ありがとうございます。
質問の編集は私が管理者権限で行いました。見やすくする為にテーブルをマークダウン書式にしました。
hatenaさん、こんにちは。
各方面でのご活躍、いつも拝見させていただいております。
管理者権限での表の編集、承知いたしました。わざわざのご連絡、ありがとうございます。