• ベストアンサー

ACCESS SQL 括弧について

AS 売上の合計をAS 07売上の合計に変えたところ かっこの使い方が正しくないと言われました。 ASの名前を変えただけなのですが、何が問題なのでしょうか? SELECT IIf([07売上の合計]=[売上],"●","×") AS 比較 FROM [SELECT ■T_M店マスタ.企業コード, ■T_M店マスタ.データレベル, Sum(■売上三期.[07年_売上]) AS 07売上の合計 FROM ■T_M店マスタ INNER JOIN ■売上三期 ON ■T_M店マスタ.店コード = ■売上三期.店コード GROUP BY ■T_M店マスタ.企業コード, ■T_M店マスタ.データレベル HAVING (((■T_M店マスタ.データレベル)="10"))]. AS 店 INNER JOIN [SELECT [●T_K調査データ(売上)企業レベル(単独店込み)].企業コード, [●T_K調査データ(売上)企業レベル(単独店込み)].売上, Format(DateAdd("m",-6,CDate("H" & Left([決算期],2) & "年" & Right([決算期],2) & "月")),"yyyy" & "年") AS 式1 FROM [●T_K調査データ(売上)企業レベル(単独店込み)] WHERE (((Format(DateAdd("m",-6,CDate("H" & Left([決算期],2) & "年" & Right([決算期],2) & "月")),"yyyy" & "年"))="2007年"))]. AS 企業 ON 店.企業コード = 企業.企業コード WHERE (((IIf([07売上の合計]=[売上],"●","×"))="×"));

  • sskj
  • お礼率24% (75/303)

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

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

裏付けありませんが、 [ ・・・ ]. AS 店 [ ・・・ ]. AS 企業 という記述を、 ( ・・・ ) AS 店 ( ・・・ ) AS 企業 に書き換えてみてどうなりますか。 ※ クエリなら再度開いた時には、[ ・・・ ]. AS に戻ったと思います。 (戻るのか、書き換えられるのかは?)

sskj
質問者

補足

ありがとうございます。 回答通り、括弧の部分が不味かったようです。 なぜこのようになるのでしょうか?

その他の回答 (2)

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

> なぜこのようになるのでしょうか? 原因分からないのですが、クエリで、 ( ・・・ ) AS 店 の様に記述し保存後、再度開いてSQLビューで見た時、 [ ・・・ ]. AS 店 の様に書き換えられていたことがあります。 修正しなければそれはそれなりに動きますが、修正を入れるとエラーで保存もできません。 これは [ ] は入れ子にできないからと思います。 なので、入れ子にならないように [ ・・・ ]. を、修正のたびに ( ・・・ ) に書き換えてました。 詳しいことは分かりません。

sskj
質問者

お礼

保存するたびになるようですね。 原因は直接Microsoftに問い合わせてみます。 回答ありがとうございました。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

●T_K調査データ(売上)企業レベル(単独店込み) これはテーブル名でしょうか。 (売上)の閉じ括弧が半角になってますがこれが原因では?

関連するQ&A

  • Access 抽出条件 フォームの作成について

    クエリで以下のような関数で日数から期首を求めたのですが 抽出条件の指定が出来ません。テキスト型、○○年○○月、期首7月 今期: IIf(Month(CDate([決算日] & "01日"))<=7,Format(DateAdd("m",-6,CDate([決算日] & "01日")),"ggge" & "年"),Format(CDate([決算日] & "01日"),"gggee" & "年")) 色々試してみましたがデータ型が違うといわれるのですが、どの様な方法をとれば良いでしょうか? それとエラーになっている(日付けデータが無い)部分はほって置いて良いのでしょうか?

  • SQL2005 ストアドUPDATEについて教えてください。

    SQL2005 ストアドUPDATEについて教えてください。 顧客マスタと、売上データがあり、顧客毎の売上データの売上金額の合計を 顧客マスタの累計金額にUPDATEする方法を教えてください。 顧客マスタ・・顧客コード、累計金額 売上データ・・売上日、顧客コード、売上金額 update 顧客マスタ set 累計金額=(select sum(B.売上金額) from 売データ as B where 売上日付>='2010/03/01' and 売上日付<='2010/06/30' group by B.顧客コード) from 顧客マスタ as A,売上データ as B where A.顧客コード=B.顧客コード サブクエリは複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後に続く場合や のエラーが出たり、期間中のすべての顧客の売上合計がセットされたり思うようになりません。 どなたか教えてください。 宜しくお願いします。

  • SQL文を教えて下さい

    VB2008、SQL Server で開発をしています。 下記の条件でデータを取得したいのですが、SQL文がうまくできず、困っています。 おわかりの方、教えてください。 仕様:得意先マスタ(得意先M)の全件と、売上テーブル(売上T)を読みます。     売上テーブルの商品コードの商品名を商品マスタ(商品M)より取得します。     得意先マスタの全得意先を取得する必要があります。     すべての得意先の売上データが存在するわけではありません。 ACCESS上でクエリを作成し、SQLビューにすると、こうなります。 inptSyoCD:画面から入力した商品コード 1,まず、クエリ1: SELECT 売上T.伝票日付, 売上T.伝票番号, 売上T.得意先コード, 売上T.明細区分, 売上T.商品コード, 商品M.商品名称 FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 WHERE 売上T.明細区分=1 AND 売上T.商品コード= inptSyoCD ; 2,次に、実際に処理するSQL文: SELECT 得意先M.得意先コード, 得意先M.得意先名称,       クエリ1.伝票日付, クエリ1.伝票番号, クエリ1.明細区分, クエリ1.商品コード, クエリ1.商品名  FROM 得意先M LEFT JOIN クエリ1 ON 得意先M.得意先コード = クエリ1.得意先コード ORDER BY 得意先M.得意先コード,売上T.伝票日付,売上T.商品コード; この2つをひとつのSQL文にする方法がわかりません。 よろしくお願いいたします。

  • SQL文で、合計が0のレコードを表示させないようにしたい。

    売上のテーブルがありまして、 数量の合計と金額の合計を出していたのですが、 数量の合計が0の場合は表示させないことになり、 下記のようにしてみたのですが、エラーになってしまいます。 かといって、Sum(売上マスタ.数量) <> 0 でもダメでしたし、どうしていいのか困っています。 どうぞ、ご教授よろしくお願いしますm(_ _)m SELECT Sum(売上マスタ.数量) AS 数量の合計, 売上マスタ.単価*数量の合計 AS 売上金額 FROM 売上マスタ Where 売上マスタ.数量 <> 0;

  • 日付書式のString型からData型への変換

    引数での日付データを加工して、変換させたいのですがエラー("String型からData型への変換は無効です。")がでます。 対処方法をアドバイスいただけないでしょうか? コードを下記に示します。 VS 2010を使用しています。 Dim From As Long Dim Year As Integer Dim Month As Integer Dim Day As Integer From = CLng(Format(DateAdd("d", 1, DateAdd("m", -1, CDate(CStr(Year) & "/" & CStr(Month) & "/" & CStr(Day)))), "yyyyMMdd"))

  • SQLのビューについて

    SQLServer:2005 OS:XP こんにちは。お世話になっています。 SQLServerでビューを作成し、テーブル「a」の構成データにプラスして、前月の1日を入力させようとしています。 ビューの列に↓を入力すると CAST(YEAR(DATEADD(m, - 1, GETDATE())) AS varchar) + CAST(MONTH(DATEADD(m, - 1, GETDATE())) AS varchar) + CAST('1' AS varchar) 「200811」と出力されるのですが、このデータを日付型にするにはどのような関数を追加したらいいのでしょうか? アドバイスをお願いいたします。

  • 【Access2002】VBAでのSQL文

    お世話になります。 AccessVBAでレコード追加のためのSQL文を作成し、DoCmdで実行させる処理を行おうとしています。 作成されたSQL文は以下の通りです。 (T_マスタ 各項目のデータ型は全てテキストです) INSERT INTO T_マスタ ( A, B, C, D, E, F, G, H, I ) SELECT 'Aa' AS 式1, 'Bb' AS 式2, 'Cc' AS 式3, 'Dd' AS 式4, 'Ee' AS 式5, 'Ff' AS 式6, 'Gg' AS 式7, '使用しません' AS 式8, 'Ii' AS 式9; これを DoCmd.RunSQLで実行しても、T_マスタに追加されません。 クエリ_新規作成(デザイン)で同じ内容を作成し実行すると、追加されることを確認しました。 そのSQL文は以下の通りです。 INSERT INTO T_マスタ ( A, B, C, D, E, F, G, H, I ) SELECT 'Aa' AS 式1, 'Bb' AS 式2, 'Cc' AS 式3, 'Dd' AS 式4, 'Ee' AS 式5, 'Ff' AS 式6, 'Gg' AS 式7, '使用しません' AS 式8, 'Ii' AS 式9; VBAで実行させる場合、制限などがあるのでしょうか。 なぜ正しい処理が行われないのか、さっきからコードを見比べていますが理由がわかりません。 解決策を教えてください、宜しくお願いいたします。

  • sql2005 UPDATEの質問なのですが、先日jamshid6さん

    sql2005 UPDATEの質問なのですが、先日jamshid6さんに 顧客毎の累計金額を顧客マスタへupdateの方法を教えて もらったのですが、期間の日付がnullの場合が発生すること があり、nullの場合は、全データ対象となる書き方を教えて 下さい。 (1) update 顧客マスタ set 累計金額=B.累計金額 from 顧客マスタ as A inner join (select 顧客コード,sum(売上金額) as 累計金額 from 売上データ where 売上日付 between '2010/03/01' and '2010/06/30' group by 顧客コード) as B on A.顧客コード=B.顧客コード (2) あと、顧客マスタには、生年月日があり、本日日付より年齢を求めて 顧客マスタの年齢にupdateすることは可能ですか? これも、生年月日がnullの時もあるので、その場合は、年齢を0にした いと思います。 顧客マスタ...顧客コード、生年月日(datetime)、年齢(int) 宜しくお願いします。

  • ACCESS教えて下さい。

    こんにちは。お願いします。 T_1 テーブル 企業名 売上合計 T_2サブ テーブル 売上内容 売上金額 仕入金額 を作成し、T_1のフォームを作成しT_2サブは、サブフォームにします。 入力していき、テーブル1の合計にサブフォーム上で入力した売上金額の合計が、計算されるようにしたいのですが・・・。 どうすれば良いでしょうか? 教えて下さい・・。

  • SQL文 グループ集計TOPに対する明細

    すみません、教えてください。 得意先の売上額上位10社のそれぞれについて、仕入合計額上位10商品のリストを出力するSQL 文をがわからなくて困っています。 できれば、一般的なSQL文(SQL92)でお願いします。 テーブルは、下記の2つです。 -------------------------------------------- ・t_売上明細  売上日  得意先コード  商品コード  売上金額 ・t_商品マスタ  商品コード  仕入単価 <出力>====================================== 得意先コード, 売上合計,商品コード,仕入額合計 -------------------------------------------- C3 \300100    A08 \32500     A04 \31000     ~~~    A10 \30000(Top10) C2 \200200    A05 \22500    A04 \21000     ~~~     A10 \20000(Top10) ~~~ ~~~ C10 \1000(Top10)    A97 \500    A14 \100    ~~~    A96 \10(Top10) ================================

専門家に質問してみよう