繁体   English   中英

无法以列形式添加逐行数据

[英]Not able to add row wise data in column form

EmpID (Primary Key)  Sale Items   Paid                   
ABC                     chair      Yes                      
WXY                     chair      Under Review             
PER                    Laptop      Yes
ABC                     Chair     Yes                        

现在我想创建另一个表,我想在其中插入数据,如下所示

Emp ID           Chair        Laptop 
ABC               2            0
WXY               1            0

我要插入的查询是

Select Emp Id from EMP,count(sales_item) as chair where Sales_Item = 'chair' 

现在正在工作如何添加笔记本电脑(第 3 列)。 你能建议吗

您将使用条件聚合:

Select EmpId,
       sum(case when sales_item = 'chair' then 1 else 0 end) as chairs,
       sum(case when sales_item = 'laptop' then 1 else 0 end) as laptops
from EMP
group by EmpId;

没有理由将其存储在单独的表中。 如果你喜欢,你可以创建一个视图。 然后,当您访问视图时,您就知道数据是最新的。

您可以使用 pivot 获得预期结果:

DECLARE @t TABLE(
EmpID varchar(3)
,SaleItems varchar(10)
,Paid varchar(20)
)

INSERT INTO @t VALUES
('ABC', 'chair', 'Yes')
,('WXY', 'chair', 'Under Review')
,('PER', 'Laptop', 'Yes')
,('ABC', 'Chair', 'Yes')

SELECT piv.EmpID,  ISNULL(piv.chair, 0) AS chair, ISNULL(piv.Laptop, 0) AS Laptop
FROM(
  SELECT EmpID, SaleItems, 1 cnt
  FROM @t
) x
PIVOT
(
  SUM(cnt)
  FOR SaleItems IN ([chair], [Laptop])
) piv

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM