我有一个投标表,如下:
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
但这会返回所有行。没有区别。有关解决此问题的任何建议?