小编Bla*_*yre的帖子

按问题分区的 SQL-Sum

我写了一篇与此类似的声明。我是 SQL 新手,想知道如何或是否可以使用SUM(___)over(partition by ___) 该 PartID 的所有 NonUsableTotal 零件库存求和。

问题是这f.Netflag是一个数值,可以1 or 0将其定义为可用或不可用。

这是声明:

select distinct 
       l.whse,
       l.partid,
       i.descr,
       l.qty,
       case when f.Netflag=0 then 'NONUsable' else 'Usable' end as UsableStatus,
       SUM(l.qty*f.Netflag) over (partition by l.partid) as TotalUsable
from   location l (nolock)  
join   inventory i (nolock) 
on     l.partid=i.partid
join   loctable f (nolock) 
on     l.whse=f.whse
Run Code Online (Sandbox Code Playgroud)

这是我希望结果的样子:

+-------+--------+-----+------------+-----------+--------------+ 
|Partid |  Whse  | Qty |UsableStatus|TotalUsable|TotalNonUsable|
+-------+--------+-----+------------+-----------+--------------+     
 134       INSP     10    Usable         30            20
 134       RRR      15    NONUsable      30            20
 134 …
Run Code Online (Sandbox Code Playgroud)

sql-server

3
推荐指数
1
解决办法
4075
查看次数

标签 统计

sql-server ×1