MS Access SQL справка - PullRequest
       1

MS Access SQL справка

0 голосов
/ 06 июля 2011

У меня есть эта таблица:

beneficiary     service   marks   term
1               eng        50       1
1               eng                 2
1               math       30       1
1               math       20       2
1               com                 1
1               com        70       2
2               com                 1
2               com        30       2
2               eng        20       1
2               eng        30       2

Как извлечь только строки для получателя / службы пар, которые имеют отметки в обоих терминах в сервисе ?

Так что из этой таблицы должно возвращаться только:

beneficiary     service   mark     term
1               math       30       1
1               math       20       2
2               eng        20       1
2               eng        30       2

1 Ответ

3 голосов
/ 06 июля 2011

Это работает, когда я импортирую ваши данные в локальную базу данных и запускаю ее:

SELECT s.*
FROM scores AS s
JOIN (
    SELECT beneficiary,service
    FROM scores
    WHERE marks IS NOT NULL
    GROUP BY beneficiary,service HAVING COUNT(*) = 2
) AS x ON (x.beneficiary = s.beneficiary AND x.service = s.service);

Выход:

 beneficiary | service | marks | term
-------------+---------+-------+------
           1 | math    |    30 |    1
           1 | math    |    20 |    2
           2 | eng     |    20 |    1
           2 | eng     |    30 |    2
(4 rows)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...