SQL将多个结果放入一个单元格中?

时间:2016-05-19 15:04:35

标签: sql sql-server comma

所以,我正在运行一份报告,看看1位客户向我们下了多少次订单。我的大部分数据都是他们的电子邮件,他们购买了多少次,他们的名字,最后的订单日期和最后的订单ID。

我无法弄清楚如何获取该订单中的商品来获取productCode。

这些项目存储在名为Lines的单独表格中,并通过OrderID链接到主要订单。

有没有办法如果每个订单都有多个行来将ProductCodes从这些行放入逗号分隔值?

像这样的东西

BuyerEmail | HowMany | Name | ProductCodes
--------------------------------------------
budyn@bud  | 12      | Bud  | 1231, 123, 

此查询将更好地解释......:

SELECT TOP 1000 
o.BuyerEMail
,COUNT(*) HowMany
,o.Name
,o2.OrderID
FROM Orders o
JOIN 
(
 SELECT 
 BuyerEmail
 ,MAX(OrderDate) Latest 
 FROM Orders 
 GROUP BY BuyerEmail
) l
ON o.BuyerEmail = l.BuyerEmail

JOIN Orders o2
ON l.BuyerEmail = o2.BuyerEmail
AND l.OrderDate = o2.OrderDate

WHERE Pay != 'PayPal'

GROUP BY 
o.BuyerEmail
,o.Name
,l.Latest
ORDER BY 
COUNT(*) DESC

是否可以连接细胞? 我只是不知道从哪里开始。

谢谢

1 个答案:

答案 0 :(得分:1)

当然有可能,你需要做这样的事情:

select NId_Lista_Surtido,
    stuff((select cast(',' as varchar(max))+ cast(nid_detalle_surtido as varchar(max)) <<<--- this is the value being appended
    from CES_DLista_Surtido dsurtido <-- this is the detail table
    where dsurtido.nid_lista_surtido=tsurtido.nid_lista_surtido <-- this is the condition 
    for xml path('')),1,1,'') as prueba <-- this is how the col name.
    from  CES_TLista_Surtido tsurtido <-- this is the main table

这是ouptput

NId_Lista_Surtido prueba 1 95854,95855,95856,95857,95858,95859,95860,95861,95862,95863,95864,95865,95866,95867,95868,95869,95870,95871,95872,95873,95874,95875,95876

这是我的数据的一个工作示例,如果您有疑问,请填写您需要使用的功能。