Sql 实体数据检索
我需要有关使用sql Server从简单实体中提取数据的帮助 库存实体具有列<代码>(主键,fk)产品id,(主键,fk)仓库id,库存金额,库存最大库存,库存再订购点 我需要库存记录作为产品ID和以下列之和的列表:库存金额、库存最大库存和库存再订购点。仅显示Sql 实体数据检索,sql,database,Sql,Database,我需要有关使用sql Server从简单实体中提取数据的帮助 库存实体具有列(主键,fk)产品id,(主键,fk)仓库id,库存金额,库存最大库存,库存再订购点 我需要库存记录作为产品ID和以下列之和的列表:库存金额、库存最大库存和库存再订购点。仅显示库存金额>900的结果 SELECT PRODUCT_ID, SUM(INVEN_AMOUNT), SUM(INVEN_MAX_STOCK), SUM(INVEN_REORDER_POINT) FROM INVENTORY GROUP BY PRO
库存金额>900
的结果
SELECT PRODUCT_ID, SUM(INVEN_AMOUNT), SUM(INVEN_MAX_STOCK),
SUM(INVEN_REORDER_POINT) FROM INVENTORY
GROUP BY PRODUCT_ID HAVING INVEN_AMOUNT > 900;
这就是我尝试过的代码。但我一直得到一个错误,那就是它不是一个由表达式组成的组。关于我为什么会出现此错误,有什么帮助吗?
不允许使用INVEN\u AMOUNT>900
,因为您没有按INVEN\u AMOUNT
进行分组。在以下位置使用:
SELECT PRODUCT_ID, SUM(INVEN_AMOUNT), SUM(INVEN_MAX_STOCK), SUM(INVEN_REORDER_POINT)
FROM INVENTORY
WHERE INVEN_AMOUNT > 900
GROUP BY PRODUCT_ID;
如果您想限制总和大于900的组,则使用SUM(INVEN\u AMOUNT)
:
INVEN\u AMOUNT
与have
一起使用无效,但SUM(INVEN\u AMOUNT)
有效<代码>Having用于聚合函数,如sum()、avg()和max()等,否则在的位置使用更好
SELECT PRODUCT_ID, SUM(INVEN_AMOUNT) as INVEN_AMOUNT,
SUM(INVEN_MAX_STOCK), SUM(INVEN_REORDER_POINT) FROM INVENTORY
GROUP BY PRODUCT_ID Having SUM(INVEN_AMOUNT) > 900;
SELECT PRODUCT_ID, SUM(INVEN_AMOUNT) as INVEN_AMOUNT,
SUM(INVEN_MAX_STOCK), SUM(INVEN_REORDER_POINT) FROM INVENTORY
GROUP BY PRODUCT_ID Having SUM(INVEN_AMOUNT) > 900;