Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル2つのテーブルをクエリ上で1つにするには
記事No42672
投稿日: 2011/09/07(Wed) 15:03
投稿者tama
解決済: ON
OS:XP
Access Version:2003

こんにちは。
2つのテーブルをクエリ上で1つにまとめたいのですが、集計するのではなく、ただ単に1つに表示したいのです。
イメージは、「テーブルB」の「金額C」を「テーブルA」にくっつけたいのですが、テーブル内のレコードは同じではないので、
「テーブルA」にレコードがなくて「テーブルB」にある場合でもクエリ内には金額が入っていれば表示させたい
(下記のような結果にしたい)のですが、何か良い方法はありませんか?よろしくお願いします。

テーブルA
販売月  販売コードA  金額A  金額B
1月     12345     50     150
1月     23456     100    250
2月     34567     500    150
3月     45678     10     250

テーブルB
販売月  販売コードA  金額C
2月       34567      400
2月       89012      650
3月       45678     100

クエリ内
販売月  販売コードA 金額A  金額B   金額C
1月     12345    50    150
1月     23456    100   250
2月     34567    500   150      400
2月      89012                650
3月     45678    10    250     100

タイトルRe: 2つのテーブルをクエリ上で1つにするには
記事No42675
投稿日: 2011/09/07(Wed) 15:52
投稿者さい
解決済: ON
ユニオンクエリーが役立つと思います。

タイトルRe^2: 2つのテーブルをクエリ上で1つにするには
記事No42677
投稿日: 2011/09/07(Wed) 16:31
投稿者tama
解決済: ON
> ユニオンクエリーが役立つと思います。

下記コードでユニオンクエリを作ってみましたが、

SELECT 販売月,販社コードA,金額A,金額B
FROM テーブルA
UNION
SELECT 販売月,販社コードA,金額C
FROM テーブルB


「ユニオンクエリで選択した2つのテーブルまたはクエリの列数が一致しません。」

となってしまいました。やはり2つのテーブルのレコード数は同じじゃないとユニオンクエリではダメなのでしょうか?

タイトルRe^3: 2つのテーブルをクエリ上で1つにするには
記事No42678
投稿日: 2011/09/07(Wed) 16:34
投稿者さい
解決済: ON
> となってしまいました。やはり2つのテーブルのレコード数は同じじゃないとユニオンクエリではダメなのでしょうか?

同じにすれば良いです

SELECT 
 販売月,
 販社コードA,
 金額A,
 金額B,
  0 as 金額C
FROM 
 テーブルA
UNION ALL
SELECT 
 販売月,
 販社コードA,
 0 as 金額A,
 0 as 金額B
 金額C
FROM 
 テーブルB

得た答えをグループ化、集計すればご希望のものが得られます。

タイトルRe^4: 2つのテーブルをクエリ上で1つにするには
記事No42679
投稿日: 2011/09/07(Wed) 17:06
投稿者tama
解決済: ON
さいさん。返信ありがとうございます。


> > となってしまいました。やはり2つのテーブルのレコード数は同じじゃないとユニオンクエリではダメなのでしょうか?
>
> 同じにすれば良いです
> 得た答えをグループ化、集計すればご希望のものが得られます。

実行してみましたが、テーブルAの「販売月」、「販売コードA」、「金額A」、「金額B」の
パラメータを聞かれてしまいます。結果は下記のような感じになってしまいますが、
テーブルAの数字を出すようには出来ませんでしょうか?


販売月  販売コードA 金額A  金額B   金額C
                             0
                             0
                             0
                             0
                             400
                              650
                              100

タイトルRe^5: 2つのテーブルをクエリ上で1つにするには
記事No42680
投稿日: 2011/09/07(Wed) 17:13
投稿者さい
解決済: ON
> 実行してみましたが、テーブルAの「販売月」、「販売コードA」、「金額A」、「金額B」の
> パラメータを聞かれてしまいます。結果は下記のような感じになってしまいますが、
> テーブルAの数字を出すようには出来ませんでしょうか?

ちゃんとクエリーが組まれていたら、表示しますよ

タイトルRe^5: 2つのテーブルをクエリ上で1つにするには
記事No42681
投稿日: 2011/09/07(Wed) 17:15
投稿者さい
解決済: ON
コピペじゃなくちゃんとご自分で、記入してみてください。

タイトルRe^6: 2つのテーブルをクエリ上で1つにするには
記事No42685
投稿日: 2011/09/07(Wed) 17:38
投稿者tama
解決済: ON
さいさん。お世話になっておりますm(_ _)m

> コピペじゃなくちゃんとご自分で、記入してみてください。

出来ました^^; ありがとうございました。
一応クエリは表示されましたが、全レコードを出すのではなく、「34567」と「45678」のデータを
下記のように結合したいのですが、

販売月  販売コードA 金額A  金額B   金額C
1月     12345    50    150
1月     23456    100   250
2月     34567    500   150      400
2月      89012                650
3月     45678    10    250     100

「GROUP BY」で下記のように結合しようとしましたが、

SELECT 販売月, 販社コードA, 金額A, 金額B, 0 as 金額C
FROM テーブルA
UNION ALL SELECT 販売月, 販社コードA, 0 as 金額A, 0 as 金額B, 金額C
FROM テーブルB
GROUP BY 販売月, 販社コードA;

「集計関数の一部として指定された式'金額C'を含んでいないクエリを実行しようとしました。」

となってしまいました。どこか間違っていますでしょうか?

タイトルRe^7: 2つのテーブルをクエリ上で1つにするには
記事No42686
投稿日: 2011/09/07(Wed) 17:39
投稿者さい
解決済: ON
> 「GROUP BY」で下記のように結合しようとしましたが、
>
> SELECT 販売月, 販社コードA, 金額A, 金額B, 0 as 金額C
> FROM テーブルA
> UNION ALL SELECT 販売月, 販社コードA, 0 as 金額A, 0 as 金額B, 金額C
> FROM テーブルB
> GROUP BY 販売月, 販社コードA;

集計が必要です、このクエリを元に集計をすれば良いのでは?

select
wk.販売月,
wk.販社コードA,
sum(wk.金額A),
sum(wk.金額B),
sum(wk.金額C)
from(
SELECT 販売月, 販社コードA, 金額A, 金額B, 0 as 金額C
FROM テーブルA
UNION ALL
SELECT 販売月, 販社コードA, 0 as 金額A, 0 as 金額B, 金額C
FROM テーブルB) as wk
GROUP BY wk.販売月, wk.販社コードA;

タイトルRe^8: 2つのテーブルをクエリ上で1つにするには
記事No42688
投稿日: 2011/09/08(Thu) 21:35
投稿者tama
解決済: ON
さいさん。お付き合いいただきありがとうございます。

> 集計が必要です、このクエリを元に集計をすれば良いのでは?

今日は出張なので、土曜日に会社に行ってちょっとやってみます。
ありがとうございますm(_ _)m

タイトルRe^8: 2つのテーブルをクエリ上で1つにするには
記事No42690
投稿日: 2011/09/10(Sat) 09:51
投稿者tama
解決済: ON
さいさん。お世話になっております。

> 集計が必要です、このクエリを元に集計をすれば良いのでは?

思っていた通りの表ができました(゜▽ ゜)
またなにかありましたらよろしくお願いいたしますm(_ _)m m(_ _)m

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る