Нужна помощь с запросом SQL - PullRequest
1 голос
/ 17 ноября 2010

Ниже приведена упрощенная версия таблицы базы данных, которую я запрашиваю (назовем ее «Платежи»):

date     |    userid   |    payment
20/1/10  |      1      |      10
21/1/10  |      1      |      15
17/1/10  |      2      |      7
18/1/10  |      2      |      9

В ней регистрируются платежи, сделанные пользователями в определенные даты.Мне нужно выяснить детали первого платежа, сделанного каждым пользователем следующим образом:

20/1/10  |      1      |      10
17/1/10  |      2      |      7

Хранимые процедуры исключены.Есть ли способ сделать это, используя только SQL, или я должен просто добавить первый флаг оплаты в таблицу?

Ответы [ 3 ]

5 голосов
/ 17 ноября 2010
SELECT MIN([Date]), userid, payment
FROM Payments
GROUP BY Userid, payment
3 голосов
/ 17 ноября 2010
SELECT MIN([Date]), UserID FROM Payments GROUP BY UserID
1 голос
/ 17 ноября 2010

Попробуйте это:

SELECT * FROM Payments
INNER JOIN (SELECT Min([Date]) AS MinDate, UserID 
            FROM Payments GROUP BY UserID) AS M
ON M.MinDate = Payments.Date AND M.UserID = Payments.UserID
...