我写了一篇与此类似的声明。我是 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 ×1