sql - SQL - 基于条件的 SUM 值
问题描述
我无法加载此表。我希望在 NameCode 相同的情况下对所有 Quantity 值 <500 求和。如果总和仍小于 500,则不要插入。这可能吗?
CREATE TABLE [dbo].[GovQuantity](
[NameCode] [varchar](40) NULL,
[Quantity] [decimal](18,6) NULL,
)
INSERT INTO GovQuantity
SELECT d.NumNameCode
, Quantity = CASE WHEN QUANTITY < 500 THEN SUM(Quantity) ELSE Quantity END
FROM [...]
GROUP BY NumNameCode, Quantity
目前有这个:
NameCode Quantity
ArmyGuard 125
ArmyGuard 605
ArmyGuard 65
Boeing 420
Boeing 750
Boeing 100
需要:
NameCode Quantity
ArmyGuard 605
Boeing 520
Boeing 750
解决方案
也许是这样的。
这将显示单个行 >= 500 并聚合杂项。其他。
例子
;with cte as (
Select NameCode
,Quantity
,RN = Row_Number() over (Partition By NameCode Order by Quantity)
From [dbo].[GovQuantity]
)
Select NameCode
,Quantity = sum(Quantity)
From cte
Group By NameCode,case when Quantity >=500 then RN else 0 end
Having sum(Quantity) > 500
Order by NameCode
退货
NameCode Quantity
ArmyGuard 605
Boeing 520
Boeing 750
推荐阅读
- wso2esb - 引起:org.postgresql.util.PSQLException:错误:列“imagesync__c”的类型为布尔值,但表达式的类型为字符变化
- c - 由于长路径导致的 fopen 错误不存在此类文件
- c++ - 在 multimap 的同一行中打印相同键的值,在下一行打印不同键的值
- reactjs - 运行生产服务器时未定义文档,如何解决此错误?
- php - 如何将带有语言代码的 url 重定向到基本 url
- python - 反转错误的 CSV 编码
- javascript - 对背景作出反应,渲染不正确
- python-3.x - 由于超时而停止多次发送请求
- jekyll - 为什么我的共享导航栏中的图像路径会发生变化?
- api - Rundeck - HTTP 工作流步骤 API 令牌