У меня есть таблица предложений, как показано ниже:
SellID INT FOREIGN KEY REFERENCES SellItem(SellID),
CusID INT FOREIGN KEY REFERENCES Customer(CusID),
Amount FLOAT NOT NULL,
BidTime DATETIME DEFAULT getdate()
Теперь на моем сайте мне нужно показать пользователю текущие ставки; только самая высокая ставка, но без повторения одного и того же пользователя.
SELECT CusID,
Max(Amount)
FROM Bid
WHERE SellID = 10
GROUP BY CusID
ORDER BY Max(Amount) DESC
Это лучшее, чего я достиг на данный момент. Это дает CusID каждого пользователя с максимальной ставкой, и он упорядочен по возрастанию. Но мне нужно получить BidTime для каждого результата. Когда я пытаюсь ввести BidTime в запрос:
SELECT CusID,
Max(Amount),
BidTime
FROM Bid
WHERE SellID = 10
GROUP BY CusID
ORDER BY Max(Amount) DESC
Мне сказали, что "Столбец 'Bid.BidTime' недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY."
Таким образом я попытался:
SELECT CusID, Max(Amount), BidTime
FROM Bid
WHERE SellID = 10
GROUP BY CusID, BidTime
ORDER BY Max(Amount) DESC
Но это возвращает все строки. Нет различий. Есть предложения по решению этой проблемы?