いつもお世話になっています。
Access2007で下記のような2つのテーブルをクエリで比較した際、なぜかNULLの部分だけのぞんだ結果にならないという現象があり、理由がわからず困っています。
内容としては、「(1)明細データ」のすべてと、「(2)コード表」をあて、「(3)結果リスト」のような表示でコードを追記するようなものです。
下記の「__」は表記の便せん上分かりやすいようNULLを示しています。
「(1)明細データ」はクエリで2つのテーブルを突き合わせ「区」を付けたしたもので、「(2)コード表」はマスタ用のテーブルとして手作りしています。
「(2)コード表」を手作りする際にはNULLの部分はなにも入れずに空にしています。
(1)明細データ
商品名 区
AAAAAA XX
BBBBBB YY
BBBBBB YY
CCCCCC XX
CCCCCC YY
CCCCCC __
(2)コード表
商品名 区 変換CD
AAAAAA XX 000101
AAAAAA YY 000102
AAAAAA __ 000199
BBBBBB XX 000201
BBBBBB YY 000202
BBBBBB __ 000299
CCCCCC XX 000201
CCCCCC YY 000202
CCCCCC __ 000299
(3)結果リスト
商品名 区 変換コード
AAAAAA XX 000101
BBBBBB XX 000201
BBBBBB YY 000202
CCCCCC XX 000301
CCCCCC YY 000302
CCCCCC __ 000399☆
ところが、クエリで実現しようとするとこの「(3)結果リスト」の☆のついている一番最後の結果が
CCCCCC __ ______
となってしまい、変換コード部にコードを埋め込むことができません。
こういう現象は初めての為、どのように聞くべきかわからないのですが、もし何かご存知、ないし、ヒントになり得ることを知っておりましたらお教えください。
以上、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
30代の男です。
作成したクエリ文を載せるほうが回答をもらうためにもよいと思います。
おそらくですが、
SELECT
明細データ.商品名
, 明細データ.区
, [コード表].変換CD
FROM 明細データ
LEFT JOIN コード表
ON (明細データ.区 = [コード表].区)
AND (明細データ.商品名 = [コード表].商品名);
とされていると推察します。
ここで問題とされていますデータ「CCCCCC,NULL」の変換CDが「000299」に変換されない事に関してですが、
まず、「NULL値」であることが問題となります。
「NULL値」は「何も入力されていない」という事になりますので
「NULL値」と「NULL値」を結合させ、結果を表示させるという事はできません。
可能であれば、「区」の項目には「NULL値」ではなく、何か別の文字(半角スペース1つでも可)を
入力することをお勧めします。
すでに多岐に渡る人がシステムを使用しており、変更が不可能というのであれば、
「明細データ」と「コード表」それぞれに以下のようなクエリを作成し、クエリ同士で
結合を行った結果を「結果リスト」とすれば表示は可能です。
-------
クエリ:明細データ変換
SELECT 明細データ.商品名, Nz([区]," ") AS 区変換
FROM 明細データ;
-------
クエリ:コード表変換
SELECT [コード表].商品名, Nz([区]," ") AS 区変換, [コード表].変換CD
FROM コード表;
-------
上記二つのクエリは単純に
[区]という項目の値が「NULL値」であった場合、半角スペース一つで項目を表現するという
ものになります。
以上です。
分かりづらい所がありましたら補足にご記載ください。。
内容はご推察通りで、意をくんでいただきありがたい次第です。
なるほど、すかさず試してみました。
元データ側をいじることができない為、対処方法としても提示いただいてる内容と同様に一度クエリーでNZを使い、どちらのテーブルもNullを""に変換。それを使って、もう一度クエリーであて込むようにしたところ、希望している出力が出るようになりました。
気づいてみればああなるほどなのですが、変なところではまってしまった為、危うく思考が止まってしまうところでした(^^;
本当に助かりました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Access(アクセス) お世話になっています 下記データがクエリにあります。 商品名 A A B B B B B C C C 1 2022/09/11 21:07
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- その他(データベース) accessについて 2 2022/05/31 16:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
Accessユニオンクエリーで2つ...
-
SELECT時にカウントアップ
-
片方だけ抽出する方法(SQL)
-
SQL 2つのテーブルとSUBSTRING...
-
[Oracle] UPDATE分の副問い合わ...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
場合によって条件を変えるSQL
-
Sheet1$が存在致しませんとエラー
-
3つのテーブルから条件に一致し...
-
下記のsqlで取得されるレコード...
-
社内コードをソースコードに直...
-
主キーの変更
-
ACCESS2000でDCount関数の使い方
-
access初心者です。 アパレル...
-
Accessでフィールドを比較した...
-
行方向のデータを横に並べる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
主キーの変更
-
Accessでフィールドを比較した...
-
SQL 2つのテーブルとSUBSTRING...
-
続.ORACLEのSELECTのソートに...
-
行方向のデータを横に並べる
-
下記のsqlで取得されるレコード...
-
VIEWでテーブルの集計結果...
-
update文で質問です。 下記の条...
-
[Oracle] UPDATE分の副問い合わ...
-
片方だけ抽出する方法(SQL)
-
自分自身への矢印
-
連番のMin, Maxを取得したい
-
Accessユニオンクエリーで2つ...
-
日付の最大値を検索条件にする方法
-
Inner join と Left joinの明...
おすすめ情報