1

私には典型的な要件があります。

ユーザーテーブル「tblUsers」があり、「UserID」と「UserEmail」の2つの列があります。UserEmail列は一意の列ではないため、同じ電子メールIDを持つ2つのレコードが存在する可能性がありますが、UserID列はID列です。

さらに2つのテーブル「tblOrders」と「tblTravelers」があり、どちらも外部キーとして「UserID」列を持っています(「tblUsers」UserID列にリンクされています)。

さて、私が欲しいのは、このデータテーブルを返すストアドプロシージャです。

ここに画像の説明を入力してください

つまり、ストアドプロシージャのパラメータとして「UserEmail」を指定すると、指定された「UserEmail」の各UserIDに関連付けられたレコードを示す上記のテーブルが返されます。

私を助けてください。私はSQLServerの初心者です。個々のレコード数を確認する方法は知っていますが、上記の要件の解決策を見つけることができません。

4

1 に答える 1

2

これにより、転置されたデータが返されます。注文と旅行者は列、ユーザーは行です。

select users.id, users.email, 
       COUNT(distinct orders.oid) as orders, 
       COUNT(distinct travellers.tid) as travellers 
from users
    left join orders on users.id = orders.userid
    left join travellers on users.id = travellers.userid
where users.email = @email
group by users.id, users.email
于 2012-09-14T10:11:27.057 に答える