A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
今度は、仕入先マスタから受注データを参照する場合でしょうか?
念のためですが、これは、前回とは、参照方向が逆になります。
下記のクエリは、基本的に次の条件で動きます。
1.受注テーブルの仕入先コードの数が決まっている。
2.受注テーブルの1レコードに仕入先コードが
同一のものが存在する可能性がある。
また、条件2がない場合は副問い合わせ(サブクエリー)を使う必要はありません。
副問い合わせ版
SELECT [受注抽出].[仕入先CD], [仕入先TBL].[仕入先名],
[受注抽出].[受注CD],
[受注TBL].[仕入先CD01], [受注TBL].[仕入先CD02],
[受注TBL].[仕入先CD03], [受注TBL].[仕入先CD04]
FROM (
(
SELECT 仕入先TBL.仕入先CD, 受注TBL.受注CD
FROM 仕入先TBL, 受注TBL
WHERE (((受注TBL.仕入先CD01)=[仕入先TBL].[仕入先CD]))
OR (((受注TBL.仕入先CD02)=[仕入先TBL].[仕入先CD]))
OR (((受注TBL.仕入先CD03)=[仕入先TBL].[仕入先CD]))
OR (((受注TBL.仕入先CD04)=[仕入先TBL].[仕入先CD]))
GROUP BY 仕入先TBL.仕入先CD, 受注TBL.受注CD
) As
受注抽出 LEFT JOIN 仕入先TBL
ON [受注抽出].[仕入先CD]=[仕入先TBL].[仕入先CD])
LEFT JOIN 受注TBL
ON [受注抽出].[受注CD]=[受注TBL].[受注CD]
通常版
SELECT 仕入先TBL.仕入先CD,
仕入先TBL.仕入先名, 受注TBL.受注CD,
受注TBL.仕入先CD01, 受注TBL.仕入先CD02,
受注TBL.仕入先CD03, 受注TBL.仕入先CD04
FROM 仕入先TBL, 受注TBL
WHERE (((受注TBL.仕入先CD01)=[仕入先TBL].[仕入先CD]))
OR (((受注TBL.仕入先CD02)=[仕入先TBL].[仕入先CD]))
OR (((受注TBL.仕入先CD03)=[仕入先TBL].[仕入先CD]))
OR (((受注TBL.仕入先CD04)=[仕入先TBL].[仕入先CD]))
こんな感じです。
参考になるといいですが、クエリを作る場合にどの
テーブルが主体になるかしっかり把握しておいてください。
No.6
- 回答日時:
同じテーブルを違う名前をつけて4つ開くということです。
------------
テーブル名 受注TBL
------------------------------
フィールド |データ型 |サイズ
-----------+---------+-----
受注CD テキスト 4
仕入先CD01 テキスト 4
仕入先CD02 テキスト 4
仕入先CD03 テキスト 4
仕入先CD04 テキスト 4
------------
テーブル名 仕入先TBL
------------------------------
フィールド |データ型 |サイズ
-----------+---------+-----
仕入先CD テキスト 4
仕入先名 テキスト 30
というテーブル構造だったとします。
下記のクエリで出来ます。
SELECT 受注TBL.受注CD,
受注TBL.仕入先CD01, 仕入先TBL.仕入先名,
受注TBL.仕入先CD02, 仕入先TBL_1.仕入先名,
受注TBL.仕入先CD03, 仕入先TBL_2.仕入先名,
受注TBL.仕入先CD04, 仕入先TBL_3.仕入先名
FROM (((受注TBL LEFT JOIN 仕入先TBL
ON 受注TBL.仕入先CD01 = 仕入先TBL.仕入先CD)
LEFT JOIN 仕入先TBL AS 仕入先TBL_1
ON 受注TBL.仕入先CD02 = 仕入先TBL_1.仕入先CD)
LEFT JOIN 仕入先TBL AS 仕入先TBL_2
ON 受注TBL.仕入先CD03 = 仕入先TBL_2.仕入先CD)
LEFT JOIN 仕入先TBL AS 仕入先TBL_3
ON 受注TBL.仕入先CD04 = 仕入先TBL_3.仕入先CD
ありがとうございます。
コピーとって貼り付けてみました。
この出来上がったクエリには仕入先名のフィールドが4つ出来ますよね
A,B,C,D,E,F,G・・・社と仕入先がある場合、
A社が、仕入先CD01にあるときや、仕入先CD02にあるときがあるわけです。
その場合に仕入先ごとに受注データを表示したいときは、どうしたらいいんでしょうか?
フィールドが一つのときは、パラメータの設定をしてあげればいいと思うんですけど・・・。
No.5
- 回答日時:
こんにちは。
間違っていたらごめんなさい。
こんな感じのクエリーでよいと思うのですが・・・
┌────────┐
│B受注マスタ │ ┌───────────┐
├────────┤ │A仕入れ先マスタ │
│工事名 │ ├───────────┤
│仕入先CD ├───→│仕入先CD │
│仕入先CD2 ├──┐ │仕入先名 │
│仕入先CD3 ├─┐│ └───────────┘
└────────┘ ││ ┌───────────┐
││ │A仕入れ先マスタ1 │
││ ├───────────┤
│└→│仕入先CD │
│ │仕入先名 │
│ └───────────┘
│ ┌───────────┐
│ │A仕入れ先マスタ2 │
│ ├───────────┤
└─→│仕入先CD │
│仕入先名 │
└───────────┘
上の図が見にくい時は、メモ帳などにコピペして下さい。
ではでは・・・
No.4
- 回答日時:
仕入先もマスタでしたか・・・
で、要するに
受注マスタ(受注データ)にある仕入先CDで
仕入先マスタの仕入先名を引っ張りたいということでしょう。
B┬→A1
├→A2
├→A3
└→A4
でいいんじゃないでしょうか?
この回答への補足
申し訳ありません。ど素人なんです。
受注データにある仕入先CDで仕入先マスタの仕入先名を引っ張るには、
B(受注) ┬→A1 (仕入先)
|→A2
├→A3
└→A4
クエリの仕入先名のフィールドは4つ作るんですか?
うまくいきません。
すみません。
リレーションシップの方で設定をしてから、クエリを作ってます。
そうするとクエリの画面でテーブルを表示すると
Bテーブル一つAテーブル一つが出て
仕入先マスタテーブルのフィールド(仕入先CD)から受注データテーブル(仕入先CD、1、2、3)4つ結合が1対多で出てます
。
結果はエラーになってます。
No.3
- 回答日時:
横から失礼します。
>受注マスタの1レコードに複数の仕入先名がある場合・・・
とありますが受注マスタに仕入先を入力すると言うのがどういう受注形態なのか
分かりかねますが商品テーブル等はないのでしょうか?
仕入先は商品テーブルにリレーションして受注マスタには商品をぶら下げればその
商品から仕入先をクエリで表示できるのではないでしょうか。
得たい回答と違っているようでしたらゴメンなさい。
この回答への補足
仕入先は1社だけではないということんですけど、
一つの受注に対し、仕入先"A""B""C""D""E"から、複数選ぶいうことです。
大体は同じですが、毎回違うんです。A社から3つ、B社から1つ、C社からはなし・・・・という感じです。
受注マスタという名称はおかしいですね。すみません。
No.2
- 回答日時:
きっと接続方向が間違ってます。
接続方向は
この場合 1→多数 じゃないとあいまいな・・・と言われてしまいます。
A┬→B1
├→B2
├→B3
└→B4
この回答への補足
A┬→B1
├→B2
├→B3
└→B4
で、やってみましたが、結果が間違って出てきます。
A仕入先マスタのフィールドです。↓
仕入先CD仕入先名仕入先住所
101Aあいうえお
102Bかきくけこ
103Cさしすせそ
104Dたちつてと
105Eなにぬねの
B受注マスタのフィールドです。↓
受注番号受注日客先発注番号工事件名仕入先CD仕入先CD2仕入先CD3
1510102001/01/012402-15654ABCEFG101102103
1510202001/01/152402-15653HIJKLMN102101103
1510302002/02/012402-15032SEIKO101104101
B受注マスタのフィールド(仕入先CD仕入先CD2仕入先CD3)
を
A仕入先マスタのフィールド(仕入先CD)
から参照して仕入先名を表示したいんです。
なんだかうまくいきません。
根本的に間違えていますか?
No.1
- 回答日時:
>受注マスタの1レコードに複数の仕入先名がある
マスターでしたら、1レコードに1仕入先名にすることを
お勧めします。
質問の答えですが、
クエリーデザイン画面で、Bの仕入先名の数だけ Aテーブルを表示します。で、Bの仕入先名ごとに Aテーブルを1つづつ結びます。
結合プロパティは
「’B’の全レコードと 'A'の同じ結合フィールドのレコードだけを含める」にします。
この回答への補足
早速チャレンジしてみました。B テーブルを4つ表示して「’B’の全レコードと 'A'の同じ結合フィールドのレコードだけを含める」という結合にしましたが、
あいまいな外部キーが含まれているのでSQLステートメントを実行できません
いずれかの結合を実行するために、第一結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください。というエラーが出てしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) accessについて 2 2022/05/31 16:58
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessフォーム全レコードをPDF...
-
あるフィールドの最大値を条件...
-
Access2021 「ISNULL関数には引...
-
MS ACCESS 商品価格変更時の該...
-
Accessの帳票フォームで重複デ...
-
ACCESS データシートビューでの...
-
学生 科目 課題のリレーション
-
FileMakerのUniqueKeyについて
-
アクセスのテーブルを分ける理...
-
リレーションモデルのスキーマ表現
-
Accessでのあいまい検索...
-
Excel 2019 のピボットテーブル...
-
Accessでコードを入れると名前...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
BIOSでAHCIに設定したいが、項...
-
エクセルVBAで5行目からオート...
-
Accessレコードの追加や変更が...
-
APN設定について教えていただけ...
-
エクセルグラフの凡例スペース
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでのフォームの連携について
-
accessでの請求管理について
-
あるフィールドの最大値を条件...
-
MS ACCESS 商品価格変更時の該...
-
Access2021 「ISNULL関数には引...
-
Accessフォーム全レコードをPDF...
-
usingの意味がわからないのですが
-
アクセスのテーブルを分ける理...
-
Accessの帳票フォームで重複デ...
-
ACCESS VBA クエリを開く
-
集計結果を別テーブルに更新ク...
-
Accessについて(DLOOKUP関数、...
-
SQL EXISTS演算子について
-
accessについて
-
曜日を表す項目
-
Accessでクエリの作成、多対1対...
-
フィールド名が取得したい
-
SQL文でのDISTINCT
-
SQL Server 2005 Expressで営業...
-
SQLで合計表示
おすすめ情報