Sql Don';I don’我不知道在子查询中把where放在哪里
我想创建一个Sql Don';I don’我不知道在子查询中把where放在哪里,sql,sql-server,Sql,Sql Server,我想创建一个视图,查找角色库存中数量最多的前5个项目,同时创建一个列,显示有多少其他人也拥有该项目 人物 查里德PK 存货 项目ID 查里德 数量 项目 项目ID 这就是我到目前为止得到的 CREATE VIEW vwPopItems --Top 5 most popular items AS SELECT TOP 5 INVENTORY.itemID, CHARACTERS.charName,quantity, (SELECT COUNT(*) FROM INVE
视图
,查找角色库存中数量最多的前5个项目,同时创建一个列,显示有多少其他人也拥有该项目
- 人物
- 查里德PK
- 存货
- 项目ID
- 查里德
- 数量
- 项目
- 项目ID
CREATE VIEW vwPopItems --Top 5 most popular items
AS
SELECT TOP 5 INVENTORY.itemID, CHARACTERS.charName,quantity,
(SELECT COUNT(*) FROM INVENTORY where INVENTORY.itemID =) as cnt
FROM INVENTORY
JOIN CHARACTERS
ON CHARACTERS.charID = INVENTORY.charID
WHERE INVENTORY.charID = 6
GO
相反,它显示count
作为该表中没有WHERE
的所有记录,因此我需要制作一个WHERE
,其中它只显示前5名中的特定项,以及包含该项的字符数。知道上面的错误,但你们能告诉我怎么做来修复它吗?:) 只需使用COUNT(*)
而不是子查询。然后使用TOP
并按排序以获得TOP`5
SELECT TOP(5)
i.itemID,
c.charName,
i.quantity,
COUNT(*) AS cnt
FROM INVENTORY i
INNER JOIN CHARACTERS c
ON c.charID = i.charID
WHERE
i.charID = 6
GROUP BY
i.itemID,
c.charName,
i.quantity,
ORDER BY cnt DESC
@亚历山德罗·奥纳诺,对拒绝我的编辑有何评论?
SELECT EMPLOYEE_ID, salary, department_id
FROM employees E
WHERE salary > (SELECT AVG(salary)
FROM EMP T
WHERE E.department_id = T.department_id)