• 締切済み

SQL文で悩んでおります

いつもお世話になっております。 ■[案件]■■■■■■■■■■■ 案件コード 決定番号  顧客名 1       2008-1-1   山田 2       2008-1-2   清水 ■[販売成績]■■■■■■■■■■■■■■■■■■■ 販売成績コード 案件コード 担当者コード 販売額 1           1        1001       11111 2           1        1002       22222 3           1        1003       33333 4           2        1004       11111 5           2        1005       22222 ■[担当者]■■■■■■■ 担当者コード 担当者名 1001      田中 1002      鈴木 1003      高橋 1004      上田 1005      岡本 以上のテーブルがあったとします。 ここから一回のクエリで以下の結果を出すことは可能でしょうか。 --[クエリ結果]-------------------------------------------- 決定番号 顧客名 一位担当者コード 一位担当者名 合計販売額 2008-1-1  山田   1003         高橋       66666 2008-1-2  清水   1005         岡本       33333 何卒宜しくお願い致します。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

サブクエリを使えばできそうですが、SQLによって方言があるので どのRDBかを指示したほうがいいと思います

exchangekytgi
質問者

補足

ご回答有難う御座います。 SQLServer2000を使用しております。

関連するQ&A

  • SQLで違うテーブルの結果を組み合わせたい

    SQLでどう結果を返したらいいのかわからないので力を貸してください。 下記の受注表と入荷表があります。 受注表 担当 商品コード 顧客コード ── ──── ───── 田中 A1 001 田中 A1 002 田中 A1 003 山田 A2 020 山田 A1 003 田中 A1 020 入荷表 担当 入荷コード 入荷日 ── ───── ───── 山田 X013 20080701 山田 X013 20080701 田中 X013 20080701 山田 X013 20080630 山田 X013 20080630 田中 X123 20080630 自分の欲しい結果を出すためのSQLは下記のクエリです。 ≪受注表テーブルから≫ SELECT 担当, 顧客コード FROM 受注表 WHERE 担当 = '田中' AND 商品コード = 'A1' AND 顧客コード = '003' ; SELECT 担当, 顧客コード FROM 受注表 WHERE 担当 = '田中' AND 商品コード = 'A1' AND 顧客コード = '020' ; ≪入荷表テーブルから≫ SELECT 担当, 入荷日 FROM 入荷表 WHERE 担当 = '田中' AND 入荷コード = 'X013' AND 入荷日 = '20080701' ; SELECT 担当, 入荷日 FROM 入荷表 WHERE 担当 = '田中' AND 入荷コード = 'X123' AND 入荷日 = '20080630' ; これらで出る結果をただ下記のように横並びに出したいのですがどうしたらよいでしょうか? 「担当」の項目に関しては複数でますが気にしないで下さい。 ただ全く関係のないテーブル同士の結果を「横並び」表示にしたいだけです。 担当 顧客コード 担当 顧客コード 担当 入荷日 担当 入荷日 ── ───── ── ───── ── ──── ── ───── 田中 003 田中 020 田中 20080701 田中 20080630

  • SQL文の問題がよくわかりません。

    データが多すぎるので書き込めなくてすみません。 SQL文がよくわかりません。主にOracleでやってます。 表の名前 hyou1-社員のマスタ 社員コード、名前、職種、給与等級 hyou2-販売のマスタ 顧客コード、商品コード、販売数 「」は抽出例です。 (1)hyou1において給与等級が多い人の社員コードを検出 職種順に表示をする。「社員コード、職種」 (2)hyou1において給与等級平均より給与等級が多い人の職種を検索「職種」 (3)hyou1において給与等級平均より給与等級が多い人の職種毎の人数および平均給与等級の検索「職種、人数、平均給与等級」 (4)hyou1において給与等級が1または3または5である人を検索「全列」 (5)hyou2において、顧客コードが'1992’の人が購入したデータを検索「顧客コード、商品コード」 (6)hyou2において、顧客コードが’1992’である人が購入したデータを検索「顧客コード、氏名、商品コード」 (7)hyou2において、顧客名(氏名)’山田太郎’さんが購入したデータを検索「顧客コード、氏名、商品コード」 (8)hyou2において顧客コードが’1992’である人が購入した商品と同じ商品を購入した人を検索{全列」 (9)hyou2において販売数の平均「販売数平均」 (10)hyou2において販売数の平均以下の購入者を検索「全列」

  • 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文にする方法がわかりません。 よろしくお願いいたします。

  • Access2002のリレーションについて。

    販売管理のデータベースを作成しています。 『販売店マスターテーブル』 販売店コード(主キー) 販売店名 郵便番号 住所 電話番号 営業担当者コード 『営業担当者テーブル』 営業担当者コード(主キー) 営業担当者名 『販売伝票テーブル』 伝票番号(主キー) 売上日 販売店コード この中で、『販売店マスターテーブル』から、販売店コード,販売店名,郵便番号,住所,電話番号,営業担当者コードを、 『営業担当者テーブル』から、営業担当者名を使って、新しいクエリを作成しました。 そのクエリを基にフォームを作成しましたが、フォームに新規レコードを入力できません。 念のため、販売店コードを『販売伝票テーブル』からとってきたら、新規レコードが入力できるようになりました。 これは、何か主キーの関係で入力できないんでしょうか。 もし、『販売伝票テーブル』から販売店コードをとらなくちゃいけないとしたら、それはナゼでしょうか・・。 初歩的なことで申し訳ありませんが、とても困っています。 どなたかお分かりになる方、教えて下さい。 よろしくお願いします。

  • VBAでSQL文の実行の記述について

    こんにちは。アクセスVBA初心者です。 どなたか教えてください! キーが二つあるテーブルに対して、 クエリやマクロを使わずにSQL文を使って存在チェック処理を行って、 ・0件ならば、画面入力値で登録処理、 ・0件でないならば、画面入力値で担当者名を更新処理 という処理を行いたいのですが、 どのようにVBA上でSQL文を記述し、 上記の条件を記述すればいいのかわかりません。 ちなみにテーブル名は「担当者マスタ」で フィールドは ・「支店コード」→第一キー ・「担当者コード」→第二キー ・「担当者名」 です。支店と担当者の組み合わせはユニークです。 画面フォーム名は「担当者マスタメンテ」で 画面フィールドは ・「支店コード」コンボボックス ・「担当者コード」コンボボックス ・「担当者名」テキストフィールド です。 どうか教えてください!お願いいたします!

  • 難しいクエリなので教えてください。

    データベース:MYSQLのバージョン4です。 1ヶ月予約していない人を抽出せよ、というクエリです。 テーブルは 顧客テーブル(t_customer)と予約テーブル(t_yoyaku)です。 顧客テーブルのカラムは、顧客番号(no)、氏名(name)です。 予約テーブルのカラムは、顧客番号(no)と予約日付(day)です。 以下のようにレコードが登録されています。 顧客テーブル 顧客番号 氏名 1  鈴木太郎 2  佐藤一朗 3  高橋次郎 4  山田五郎 予約テーブル 顧客番号 予約日付 1  2008-4-10 1  2008-5-11 1  2008-6-12 1  2008-7-10 2  2008-5-12 2  2008-6-10 3  2008-6-11 3  2008-8-12 ※予約テーブルに登録されていない場合(山田五郎)も合わせて 抽出 すみませんが、上記のクエリについてどなたか 教えてください。お願いします。

    • ベストアンサー
    • MySQL
  • 顧客に対してスタッフが担当したことがあるかどうかを表示したいのですが、

    顧客に対してスタッフが担当したことがあるかどうかを表示したいのですが、 どの関数を、どのように使ったらいいのか教えてください。 A列日付  B列顧客番号   C列スタッフ名 5/1    1234        山田 5/1    2222        鈴木 5/2   3333        井上 5/2   4444        山田 5/2   5555        中川 5/3   6666        鈴木 5/3   7777        山田 5/3   8888        近藤 5/4   1234        近藤 上記のように何日に来店くださったお客様を誰が担当したかのデータを元に E列スタッフ名 F列に顧客番号を入力するとG列に担当したことがあれば担当した日付が入るようにしたいのです。 よろしくお願いいたします。

  • access2007 VBAでSQLのUPDATE

    access2007 VBAでSQLのUPDATEの使い方の質問です 下のような顧客テーブルがあり ID   担当者  会社名     電話番号   1    山田   XX産業     1234 2          株式会社XX  244343 3    山本   YY会社     432054 4    田中   XX商事     59680 5          TT工業     5493 6    佐藤   jj加工      54354 7          XX工務店   43202 8    湯浅   Xx工業 担当者列が空白の行を見つけ、上から2行目までの担当者列に中村と入力したいのですが 以下のようにしても上手くいきません。 ("UPDATE 顧客テーブル SET 担当者 = '中村' WHERE 担当者 IN (SELECT TOP 2 担当者 FROM 顧客テーブル)") 上記テーブルですと、ID2、5の担当者名が中村になるようにしたいのです。 どなたかお知恵をお貸しください。

  • クエリーから入力フォームの作成

    access2000を使って簡単な注文用のフォームを作っています。VBAは初心しゃです。 テーブルとしては、納品伝票(伝票番号、顧客コード)、顧客管理(顧客コード)を作り( )ないのものでリレーション組んでます。 クエリーでリレーションを組み、それを元にフォームを作りました。 希望としては(1)伝票番号の重複がないようにする。 (2)顧客コードから住所を表示させる、顧客コードが登録されていないときにはメッセージを出し、正しい顧客コード(顧客コードのみ)を入力させる。 (1)はクエリーでテキストのデータを条件にし、フォームのVBAで Private Sub 伝票番号_AfterUpdate() If DCount("伝票番号", "Q_納品伝票") >= 1 Then MsgBox "すでに登録されています" Me.Undo DoCmd.GoToControl "顧客名" DoCmd.GoToControl "伝票番号" End If End Sub で上手くできましたが、同じクエリーで(2)も(1)と同様なVBAを組んだところ(顧客デーブルの顧客コードに重複があるときをチェックさせる)、(1)の重複をチェックしなくなってしましまいました。 うまく説明できたが心配ですが、根本的に何か違っていますでしょうか?

  • Accessの選択クエリの抽出条件について

    いちもお世話になります。Access2002を勉強中の初心者です。 顧客テーブルから選択クエリを作っています。クエリのフィールドには「都道府県」(東京、埼玉、千葉...)と「顧客名」(山田、佐藤、田中...)があります。 「顧客名」の山田以外を抽出したいのですが、但し「都道府県」が東京の場合は山田以外の条件を外したいのです。つまり、埼玉、千葉の山田は抽出しませんが東京の山田は抽出したいのです。 このような抽出条件の設定ができますか? アドバイス、よろしくお願いします。