所以我希望在聚合后进行计数。基本上我希望能够用一笔金额累计库存计数,然后计算每位员工有多少次非库存盘点。
因此,对于这个数据,杰克/吉米的计数为1,萨姆的计数为2,史蒂夫的计数为0.我可以在后端的SQL中轻松做到这一点,但我也希望他们能够使用日期参数。因此,如果他们将日期改为仅1/1/17,那么Sam的计数为1,其他人都会得到0.任何帮助都会非常感激!
Emp Item Inventory Date
Sam Crackers 1 1/1/2017
Jack Crackers 1 1/1/2017
Jack Crackers -1 2/1/2017
Jimmy Crackers -2 1/1/2017
Sam Apples 1 1/1/2017
Steve Apples -1 1/1/2017
Sam Cheese 1 1/1/2017
Emp NonZeroCount
Sam 2
Jack 1
Jimmy 1
Steve 0
Emp NonZeroCount
Sam 1
Jack 0
Jimmy 0
Steve 0
Create Table #Test(
Empl varchar(50),
Item Varchar (50),
Inventory int,
Date Date
)
Declare @DateParam Date
Set @DateParam = '1/1/17'
Insert into #Test (Empl,Item,Inventory,Date)
Values
('Sam','Crackers',1,'1/1/2017'),
('Jack','Crackers',1,'1/1/2017'),
('Jack','Crackers',-1,'2/1/2017'),
('Jimmy','Crackers',-2,'1/1/2017'),
('Sam','Apples',1,'1/1/2017'),
('Steve','Apples',-1,'1/1/2017'),
('Sam','Cheese',1,'1/1/2017');
Select
Item,Sum(Inventory) as Total
into #badItems
from #Test
Where Date >= @DateParam
group by Item
having Sum(Inventory) <> 0
Select
T.Empl,Count(Distinct BI.Item)
From #Test T
Inner Join #badItems BI on BI.Item = T.Item
group by T.Empl
答案 0 :(得分:1)