Итак, я запускаю отчет, чтобы узнать, сколько раз 1 клиент разместил заказ у нас. У меня есть большинство моих данных, их электронная почта, сколько раз они купили, их имя, дату последнего заказа и последний идентификатор заказа.SQL получить несколько результатов в одну ячейку?
То, что я не могу понять, как получить, - это получить товарный код из элементов этого заказа.
Элементы хранятся в отдельной таблице под названием Lines и связаны с основным порядком по OrderID.
Есть ли способ, что если есть многострочные линии для каждого заказа, чтобы помещать ProductCodes из этих строк в качестве разделителя запятой?
Нечто подобное
BuyerEmail | HowMany | Name | ProductCodes
--------------------------------------------
[email protected] | 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
Можно ли объединить ячейки? Я просто не знаю, с чего начать.
Спасибо
посмотреть на 'FOR XML PATH' – adrianm
Возможный дубликат [Имитация группы \ _concat MySQL-функция в SQL Server?] (Http://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in -sql-server) –
Возможный дубликат [Как использовать GROUP BY для конкатенации строк в SQL Server?] (http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate- strings-in-sql-server) – Morpheus