• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:accessのサブクエリ)

Accessのサブクエリのデザインビューでの記述方法

このQ&Aのポイント
  • Accessのデザインビューでサブクエリを使用する場合、条件指定部分でエラーが発生することがあります。
  • デザインビューの条件指定部分では、サブクエリのSELECTステートメントで複数のフィールドを返すことはできません。
  • サブクエリのSELECTステートメントを修正して1つのフィールドだけを指定することで、エラーを解消できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

サブクエリのお話になりますか。 それとも、以下のような表示にする方法になりますか。 会社 部署 200901経費計 200902経費計 200903経費計 200904経費計 201001経費計 AAA AAA01   30000      30000      40000   BBB AAA01                                50000       60000 CCC AAA01                                          150000 後者だとして、上記の表示にするには、クロス集計を使います。 クエリをSQLビューに変更して、以下を記述します。 TRANSFORM Sum(経費TBL.経費) AS 経費の合計 SELECT 経費TBL.会社, 経費TBL.部署 FROM 経費TBL GROUP BY 経費TBL.会社, 経費TBL.部署 PIVOT 経費TBL.年度 & Format(経費TBL.月,"00") & "経費計"; 記述後デザインビューに変更すると、デザインビューでの書き方がわかると思います。 上記では、データのある年度、月で表示されますが、 > 会社 , 部署 , 200901経費計 , 200902経費計 , … , 201012経費計 より 2009の1月~2010の12月までを表示したい場合は、工夫が必要になります。 上記のクエリに、「クエリ列見出し」を設定する方法があります。 また、以下のような方法もあります。 テーブル2つ追加します。 テーブル「T年度」に「年度」(数値型)に 2009 と 2010 の2レコードを登録しておきます。 テーブル「T月」に「月」(数値型)に 1 ~ 12 の12レコードを登録しておきます。 クロス集計を使うことに変わりはありませんが、SQLビューで記述する内容を以下にします。 TRANSFORM Sum(Q2.経費) AS 経費の合計 SELECT Q1.会社, Q1.部署 FROM (SELECT 会社, 部署, 年度, 月 FROM (SELECT DISTINCT 会社, 部署 FROM 経費TBL) AS T1, T年度, T月) AS Q1 LEFT JOIN 経費TBL AS Q2 ON (Q1.会社=Q2.会社) AND (Q1.部署=Q2.部署) AND (Q1.年度=Q2.年度) AND (Q1.月=Q2.月) GROUP BY Q1.会社, Q1.部署 PIVOT Q1.年度 & Format(Q1.月,"00") & "経費計"; サンプル上では動いているようですが、使える/使えない等自己責任にてお願いします。 (2007でやってみましたが、2003でも動くと思いますが・・・)

関連するQ&A