-1

ドナーテーブルと証明書テーブルがあります。ドナーテーブルには属性があります

(one)
Donor No*
Donor Name
Donor Address
Donor Phone
Donor E-mail

そして、属性を持つ証明書テーブル内の 1 対多の関係です。

(many)
Certificate No*
Certificate Type
Certificate Issue Date

ゴールド、シルバー、ブロンズなど、特定の種類の証明書を受け取った寄付者の数を確認するために使用できる SQL ステートメントは何ですか?

私はもう試した

select count (*) from Donor.Certificate where Certificate = gold ect...
4

3 に答える 3

0

Charlest Bretana が指摘したように、あなたが示した DDL には、証明書を寄付者に関連付けるメカニズムが示されていません。このようなメカニズムがないと、データ間の特定の関係の期待に基づいてデータベースにクエリを実行することが非常に難しくなります。

依存テーブルである Certificates は、どのドナーが証明書を所有しているかを示すために、Donors テーブルの外部キーを所有する必要があります。これは、関係を示す最も簡単で一般的な方法です。

(one)
Donor No*
Donor Name
Donor Address
Donor Phone
Donor E-mail
And is a one to many relationship in the Certificate table with attributes

(many)
Certificate No*
Foreign Key Donor No*
Certificate Type
Certificate Issue Date
于 2013-06-13T14:18:54.580 に答える
0

ドナーテーブルを証明書に関連付けるフィールドを追加し、証明書フィールドを追加する必要があります。

ドナー表:

(one)
Donor No*
Donor Name
Donor Address
Donor Phone
Donor E-mail
Donor Certificate_Type

証明書テーブル:

(many)
Certificate No*
Certificate_Type
Certificate Issue Date

SQL、左結合の詳細を読む

SELECT count(*)
FROM Donors
LEFT JOIN Certificate
ON Donors.Certificate_Type=Certificate.Certificate_Type
WHERE Donors.Certificate_Type = 'the type'
于 2013-06-13T14:11:15.513 に答える