私は1人の顧客が何度注文したのかを知るためにレポートを作成しています。私は彼らの電子メールのほとんどのデータ、彼らが何回購入したか、彼らの名前、最後の注文日と最後のOrderIDを持っています。SQLは1つのセルに複数の結果を取得しますか?
私が得る方法を理解できないのは、その注文から商品コードを取得することです。
項目は、ラインと呼ばれる別個のテーブルに格納され、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
[SQL Serverでグループ化した\ _concat MySQL関数?](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