我试图在from子句
中的子查询中使用group by子句select userID,count(id)
from
(
(
select id,max(bidAmount),userID
from Bids
group by id,bidAmount
)
group by userID
);
但这会产生错误
错误:靠近“group”:语法错误
是否可以在sql中的from子句中的子查询中使用group by子句?
答案 0 :(得分:6)
检查你的(),它们不在正确的位置。应该是更像这样的东西:
select w.userID,count(w.id)
from (select id,max(bidAmount),userID from Bids group by id, userID) w
group by w.userID
答案 1 :(得分:6)
试试这个:
select userID,count(id)
from (
select id,max(bidAmount),userID from Bids group by id,userID
) as tmp
group by userID
答案 2 :(得分:3)
您可以在子查询中使用group by
,但语法已关闭。
select userID,count(id)
from
(
select id,max(bidAmount),userID
from Bids
group by id,userID
)
GROUP BY userid
答案 3 :(得分:-1)
我的问题是:
在此查询中,我将知道一篇文章编号中有多少项作业。 所以我写了这个查询:
SELECT
Auftrag_det.BNR AS Auftrag_Nr,
Artikel.ZNR_ALPHAN AS Artikel_Nr,
Artikel.Bezeichnung1, Auftrag_det.R_STK AS Menge,
CONVERT(nvarchar, DATENAME(iso_Week, Auftrag.DAT_WUTER)) + N'/' + CONVERT(nvarchar, DATENAME(yy, Auftrag.DAT_WUTER)) AS KW_Jahr,
Artikel.BestandFrei,
Artikel.BestandReserviert,
Artikel.BestandGesperrt,
Artikel.BestandBestelltFrei,
Artikel.BestandBestelltReserviert,
(Select Count(a.BNR)
from Auftrag a, Auftrag_det b, Artikel c
Where b.ZNR_ALPHAN=c.ZNR_ALPHAN
AND (a.BNR = b.BNR)
AND (a.ERLEDIGT IS NULL)
AND (a.DAT_WUTER IS NOT NULL)
AND (c.Bezeichnung1 <> N'Verpackungskosten')
AND (b.R_STK > 0)
)
FROM Auftrag_det
INNER JOIN Auftrag ON Auftrag_det.BNR = Auftrag.BNR
INNER JOIN Artikel ON Auftrag_det.ZNR_ALPHAN = Artikel.ZNR_ALPHAN
WHERE (Auftrag_det.ERLEDIGT IS NULL)
AND (Auftrag.DAT_WUTER IS NOT NULL)
AND (Artikel.Bezeichnung1 <> N'Verpackungskosten')
AND (Auftrag_det.R_STK > 0)
我得到了一个结果,但不是每篇文章都特别。
我无法在ZNR_ALPHAN
(这是商品编号)的子查询中分组