2016-11-01 6 views
0

この表はチャリティーに関するものです。それは3つのテーブルを持っています。 1)ドナー2)ギフト と3)年sqlの最小値の検索

私はドナーの姓と名を表示する2000年の最小値を見つけなければなりません。私は2000年の最小額を表示することができますが、寄付者の名前は正しくありません。これは私がこれまで持っているものです。

SELECT DONOR.DONOR_LNAME, DONOR.DONOR_FNAME, MIN(GIFT.AMOUNT) 
FROM DONOR 
JOIN GIFT ON DONOR.DONOR_NO = GIFT.DONOR_NO 
WHERE YEAR_NUM =2000 
HAVING MIN(GIFT.AMOUNT) 
LIMIT 0 , 30 

が助けてください

ドナーテーブル

enter image description here

ギフトテーブル

enter image description here

+2

正確な答えは可能ではない可能性があるなしにあなたのテーブル構造を、投稿してください。 –

+0

私はちょうどスクリーンショットを追加しました。私はまた、新しいユーザーのために年のテーブルを追加することはできません。私は確信が持てませんが、今年はギフトテーブルに既に入っているので、私たちはそれが必要だと思っていません。 – user5400828

答えて

2
SELECT t1.DONOR_FNAME AS first_name, 
     t1.DONOR_LNAME AS last_name, 
     t2.AMOUNT AS min_donation 
FROM DONOR t1 
INNER JOIN GIFT t2 
    ON t1.DONOR_NO = t2.DONOR_NO 
WHERE t2.YEAR_NUM = 2000 AND 
     t2.AMOUNT = (SELECT MIN(AMOUNT) FROM GIFT WHERE YEAR_NUM = 2000 GROUP BY YEAR_NUM) 
+0

ありがとう。私はまた、内部の結合と結合の違いは何ですか? – user5400828

+0

'JOIN'は、ほとんどのRDBMSで' INNER JOIN'を意味するようにデフォルト設定されています。 –

+0

私はupvoteに十分なポイントがありません。申し訳ありません。 – user5400828

0

あなたのクエリにして、グループを追加し、制限事項についてはわからない...

SELECT DONOR.DONOR_LNAME, DONOR.DONOR_FNAME, MIN(GIFT.AMOUNT) AS MinAmount 
FROM DONOR 
JOIN GIFT ON DONOR.DONOR_NO = GIFT.DONOR_NO 
WHERE YEAR_NUM =2000 
GROUP BY DONOR.DONOR_LNAME, DONOR.DONOR_FNAME 
0

クエリを実行した後に、テーブル構造を調べる必要があります。

SELECT DONOR.DONOR_NO, DONOR.DONOR_LNAME, DONOR.DONOR_FNAME, GIFT.AMOUNT 
FROM DONOR INNER JOIN GIFT ON DONOR.DONOR_NO = GIFT.DONOR_NO 
WHERE GIFT.YEAR_NUM =2000 
HAVING MIN(GIFT.AMOUNT) 
LIMIT 0, 30 
+0

'GROUP BY'節に表示されない列を選択しているので(集計でもないので)飛びません。 –

+0

ええ、私はそれを見ませんでした。ありがとう。 –

+0

多分私は十分に明確ではなかった。私は2000年に最低額が必要です。このクエリは、2000年に寄せられたすべての寄付を私に返します – user5400828

関連する問題