アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQL文の書き方を教えて下さい。
以下の2つのクエリー(1のクエリー&2のクエリー)を1つのクエリーで1度に抽出をかけたいのですがSQL文の書き方がわかりません。
データの発生条件としては
TableBのField1は必ずTableAのField1に存在するという条件です。
TableAのField1が「AAA」から「EEE」まである場合は、TableBのField1も必ず「AAA」から「EEE」の範囲内で発生します。
よろしくお願い致します。

1のクエリー
----------------------------------------------------------------
TableA
Field1
----------------------------------------------------------------
AAA
AAA
AAA
BBB
BBB
CCC
DDD
DDD
EEE
EEE
EEE
----------------------------------------------------------------
Field1をサマライズしてカウントと名称を取得するクエリー
Select Count(TableA.Field1) as RecCount, TableA.Field1 From TableA
結果
RecCount  Field1
3      AAA
2      BBB
1      CCC
2      DDD
3      EEE
----------------------------------------------------------------

2のクエリー
----------------------------------------------------------------
TableB
Field1
----------------------------------------------------------------
BBB
CCC
CCC
EEE

----------------------------------------------------------------
Field1をサマライズしてカウントと名称を取得するクエリー
Select Count(TableB.Field1) as RecCount, TableB.Field1 From TableB
結果
RecCount  Field1
1      BBB
2      CCC
1      EEE
----------------------------------------------------------------

希望する結果
TableAのRecCount TableBのRecCount TableAのField1
3                   AAA
2         1         BBB
1         2         CCC
2                   DDD
3         1         EEE

A 回答 (1件)

>Field1をサマライズしてカウントと名称を取得するクエリー


>Select Count(TableA.Field1) as RecCount, TableA.Field1 From TableA

「group by Field1」の指定が必要です。

>Field1をサマライズしてカウントと名称を取得するクエリー
>Select Count(TableB.Field1) as RecCount, TableB.Field1 From TableB

「group by Field1」の指定が必要です。

>希望する結果

表名、列名は、簡単化していますが、下記のようなSQLになります。

select Acnt,Bcnt,x.f1
from
(select count(*) as Acnt,f1 from A
group by f1) as x
left join
(select count(*) as Bcnt,f1 from B
group by f1) as y
on x.f1=y.f1
    • good
    • 0
この回答へのお礼

ありがとうございました。
無事に望み通りの結果を得ることが出来ました。
大変助かり感謝の気持ちでいっぱいです。
本当に、ありがとうございました。

お礼日時:2007/03/28 16:04

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