beginner
2025/08/04 (月) 10:25:03
61dd6@2128d
hetenaさん ありがとうございます。
現行データはACCESS作成分で下記SQLとなってます。(最終的に18項目となりました)
SELECT Sum(IIf([損益分類ID]=4,[損益分類合計],0)) AS 期首在庫, Sum(IIf([損益分類ID]=3,[損益分類合計],0)) AS 仕入高, [期首在庫]+[仕入高] AS 当期仕入, Sum(IIf([損益分類ID]=5,[損益分類合計],0)) AS 期末在庫, [当期仕入]-[期末在庫] AS 売上原価, Sum(IIf([損益分類ID]=1,[損益分類合計],0)) AS 製品売上高, Sum(IIf([損益分類ID]=2,[損益分類合計],0)) AS 家賃収入, [製品売上高]+[家賃収入] AS 収入計, [収入計]-[売上原価] AS 売上総利益, Sum(IIf([損益分類ID]=6,[損益分類合計],0)) AS 販管費, [売上総利益]-[販管費] AS 営業利益, Sum(IIf([損益分類ID] In (7,8,9),[損益分類合計],0)) AS 営業外収益, Sum(IIf([損益分類ID] In (10,11,12,13,14,15),[損益分類合計],0)) AS 営業外費用, [営業利益]+[営業外収益]-[営業外費用] AS 経常利益, Sum(IIf([損益分類ID]=16,[損益分類合計],0)) AS 特別損失, [経常利益]-[特別損失] AS 税引前当期純利益, Sum(IIf([損益分類ID]=12,[損益分類合計],0)) AS 法人税等, [税引前当期純利益]-[法人税等] AS 当期純利益
FROM Q試算表用Base09_損益分類Gr集計;
FROMのクエリは集計クエリで分類毎の合計金額を出してます。その各合計金額を上記で更に色々計算させています(それで1行のデータになってます)。それを後々扱い易い様に縦並びにしたいのです。
この1行のデータの形がよくないでしょうか?
通報 ...
このクエリデータを変形しようとしているのですね。
このクエリのソース自体も名称からして集計クエリのようですね。
集計クエリをもとにクエリを作成するという設計は重い処理になりがちです。
メモリ消費も多くなりそうです。
また、このクエリは縦並びのもの(正規化された形)を横並びになるように変形するものですね。
で、質問でやろうとしていることは、この横並びのものを再び縦並びに戻すということですね。
縦のものを横にして、再び縦に戻すという無駄なことをしているように思えます。
大元のテーブルが正規化されたものなら、そこから直接希望の結果データを得るクエリを考えた方が軽い処理になりそうです。