プロが教える店舗&オフィスのセキュリティ対策術

アプリケーションのライセンス数のカウントをしています。
下記のように、既に購入済みアプリを場所毎にカウントしているテーブルAと、現在使用しているアプリ数を場所毎にカウントしているテーブルBがあります。
クエリ(でなくてもいいのですが)を使用して一番したの<最終的に欲しいクエリ>のような形にしたいのですが、どのようにしたらいいでしょうか。。

アドバイス宜しくお願いしますm(_ _)m

<テーブルA>
アプリ場所所持
=====================
A東京10
A大阪20
A京都8
B東京20
B大阪21
B京都18
C東京8
C大阪5
C京都10

<テーブルB>
アプリ場所使用
=====================
A東京5
A大阪18
A京都7
B東京18
B大阪21
B京都15
C東京4
C大阪3
C京都9

<最終的に欲しいクエリ>
アプリ場所所持使用
=============================
A東京105
A大阪2018
A京都87
B東京2018
B大阪2121
B京都1815
C東京84
C大阪53
C京都109

A 回答 (3件)

テーブルA、テーブルBそれぞれ別クエリを作成し、UNIONで結合してクロス集計。


ただし日本語データがご要望通りに並ぶか、は疑問あり。

1.以下のクエリを作成。
select アプリ, 場所, '所持' as 区分, 所持 as 数 from テーブルA
union
select アプリ, 場所, '使用' as 区分, 使用 as 数from テーブルB
;

2.クロス集計ウィザードで上記クエリを元に作成。
行見出し:アプリ、場所
列見出し:区分
合計:数


でいかがでしょう?
    • good
    • 1
この回答へのお礼

union の使い方がまだまだわかっていなかったのでとても勉強になります!ありがとうございます!!

お礼日時:2005/10/03 13:36

必ずテーブルAとBが一致する項目があることが前提です


クエリー編集画面でテーブルAとBを追加します
テーブルAアプリ列と テーブルBアプリ列を繋ぎます
テーブルA場所列と テーブルB場所列を繋ぎます
後は下の表示列欄にアプリ列(テーブルA、Bどちらでも可)を追加
場所列(テーブルA、Bどちらでも可)を追加
テーブルAの所持列、テーブルBの使用列を追加すれば
良いと思います。
    • good
    • 1
この回答へのお礼

テーブル同士の繋ぎは複数でもOKなんですね?!できました!ありがとうございます!!!

お礼日時:2005/10/03 13:37

SELECT A.アプリ, A.場所, A.所持, B.使用


FROM A, B
WHERE A.アプリ=B.アプリ and A.場所=B.場所;
    • good
    • 1
この回答へのお礼

これは SQL の パススルー での記入でよかったでしょうか。。?ちょっと書いてみましたがちょっと失敗してしまいました。でもこの方法もできるように頑張ってみます!いろいろな方法ありがとうございます!!

お礼日時:2005/10/03 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています