![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
お世話になります。拙い文面ではありますがよろしくお願いいたします。
Vista ACCESS2010を使用しています。
下記SQLで2個のテーブルを外部結合していますが、テーブルの一方で結合で使用しているフィールドの桁が変更になり、テキスト型のフィールドを0埋めして外部結合しようとしています。フィールドを関数で桁揃えして結合キーとして使用することはできないものでしょうか。
---売上金額----------
対象月 テキスト型
商品ID テキスト型
商品名 テキスト型
支店CD テキスト型
金額 通貨型
支店CD 3ケタ→5ケタへ変更
---支店マスタ--------
支店CD テキスト型
支店名 テキスト型
支店ソート番号 数値型
支店CD 3ケタ・・・売上金額の支店CD変更に伴い、Format等で5ケタへ変更したい
---変更前-----
SELECT a.商品ID,a.商品名,a.支店CD,b.支店名,b.支店ソート番号,a.金額
FROM 売上金額 a LEFT JOIN 支店マスタ b
ON a.支店CD = b.支店CD
WHERE a.対象月 >=#2013/04/01# AND a.対象月 <=#2013/07/31#
GROUP BY a.商品ID,a.商品名,a.支店CD,b.支店名,b.支店ソート番号,a.金額
---以下へ変更---
SELECT a.商品ID,a.商品名,Format([支店CD],"00000"),a.支店名,支店ソート番号,a.金額
FROM 売上金額 a LEFT JOIN 支店マスタ b
ON a.支店CD = b.支店CD
WHERE a.対象月 >=#2013/04/01# AND a.対象月<=#2013/07/31#
GROUP BY a.商品ID,a.商品名,Format([支店CD],"00000"),a.支店名,b.支店ソート番号,a.金額
変更後の ON以下を次のように変更するとJOINでサポートされていませんのエラーとなります。
ON Format([a.支店CD],"00000") = b.支店名
都合上フィールドとテーブル名は変更していますがそれ以外は変わりません。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
最も簡単な対応は、[支店マスタークエリ]を作成されることです。
そのクエリで、列[新支店CD]を生成されると目的は達成されます。※本来は、支店コードという可変なデータ列ではなく長整数の一意な数字を主キーに。もちろん、列[支店コード]はあっても構いません。が、それは、あくまでも表のデータ。リレーションを内部管理するキーとしては不適です。
ご回答ありがとうございます。おっしゃられる通り新支店CDクエリを作成し、最小限の変更ですみました。ありがとうございます。ご指摘の通り「長整数の一意名数」での支店コードが存在していたのでこれを基に「支店コード」を作成するようにしていく予定です。リレーションを内部管理するとしては確かに不適ですね。リレーションの理解が浅かったことからマスタとしてはよくない作りになっていたのですね。ご指摘、ご教授ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(買い物・ショッピング) 商品に印字してあるバーコードについて 4 2022/09/25 14:12
- 金銭トラブル・債権回収 購入手続き後の値上げ 4 2022/06/29 18:03
- 消費者問題・詐欺 エディオンで店員に騙されました。どう対応すればよいですか? 8 2022/07/18 03:27
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- 国民年金・基礎年金 年金額改定通知書、年金振込通知書の発送。 2 2022/05/31 09:28
- ネットスーパー 皆さんはネットショップで 10 2022/10/01 13:36
- Amazon Amazonの支払い、セブンイレブンの場合はバーコードを出すか支払い番号を口頭で知らせるそうですね。 1 2022/04/08 17:09
- スーパー・コンビニ ずっと前の出来事なのですが、相談させて下さい。 ある日コンビニにいって商品を3つ購入しました。レジに 2 2022/04/24 11:11
- 電子マネー・電子決済 楽天Edyカードから、「引き続きEdyオートチャージをご利用いただく場合は、解除予定日の前日までにE 2 2023/01/27 11:37
- 消費者問題・詐欺 全身脱毛の解約時の返金について 2年10回10万円の全身脱毛の契約をしました。 一括で支払い済みです 3 2022/07/18 21:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで漢字名称を都道府県や市区...
-
下記の問合せを行うクエリを、P...
-
SQLあってますか?こう?
-
ROWNUMでUPDATEをしたいのです...
-
男性と2人で飲食店に行きテーブ...
-
L2SWはARPテーブルを持っている?
-
まるいテーブル 円い 丸い 漢字...
-
2台のサーバー間でのテーブル...
-
Accessのテーブルデータを一気...
-
テーブルに存在しない列をselec...
-
一つ前に戻るには…
-
Accessでデータシートに同じデ...
-
オフ会の席替えについて(8人...
-
SELECT 文の NULL列は?
-
テーブル名をカラムとして取得...
-
他のデータベースとのテーブル結合
-
sql serverのテーブルレイアウ...
-
vers か a か(フランス語)
-
複数テーブルにわたるCOUNT
-
JavaScriptでAccessのテーブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
このSQLあってますか?教えてく...
-
SQLで漢字名称を都道府県や市区...
-
下記の問合せを行うクエリを、P...
-
SELECT文内での条件分岐
-
下記の問合せを行うクエリを、P...
-
SQLです。こんな感じですか?あ...
-
SQL 主キーによる自動的な表の結合
-
条件付データ差分の抽出で
-
update文におけるwhereとjoinの...
-
グループごとの最高得点者一覧...
-
降順で並び替えて昇順で受け取...
-
SQLの作成方法
-
うまくいきません教えてくださ...
-
現在庫算出方法についてお教え...
-
ACCESS2010 SQL 結合キーにつ...
-
サブクエリを使用せずにLEFT JO...
-
3つの表の外部結合
-
SQL CASE文に制御について
-
相関サブクエリの中で、グルー...
-
UPDATEでSETする値
おすすめ情報