2016-06-22 6 views
1

私の問題でCOALESCEを使用する予定です。私が望むのは、単一の列にカンマで区切った値を持つことだけです。ここ は私の文は次のとおりです。COALESCEをSQLの内部結合文で使用する方法

select p.[name], cd.CustomerName, cd.CustomerEmailID 
    ,cd.CustomerPhoneNo,cd.CustomerAddress 
    ,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod 
FROM CustomerDetails cd 
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id 
Inner Join Products p ON cp.ProductID = p.ProductID 

、それが私にこの

enter image description here

を与えるだろう、今私は、彼らがしているので、製品の列が

carbon dioxied,industrial oxygen 

の結果を持っていたいです同じID。

私を助けてください。フィドル enter image description here

UPDATE:あなたはそんなに

UPDATE感謝現在の文をまだ私に同じ結果を与えます。

use ShoppingCartDB 
select 
     STUFF((SELECT ',' + p.[name] 
      FROM Products p 
      WHERE cp.ProductID = p.ProductID 
      FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'') AS Name 
    , cd.CustomerName, cd.CustomerEmailID 
    ,cd.CustomerPhoneNo,cd.CustomerAddress 
    ,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod 
FROM CustomerDetails cd 
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id 
+0

これをしてくださいチェック。 [リンク](http://stackoverflow.com/questions/28986135/concatenate-fields-of-rows-with-the-same-id-in-mysql) – Berkay

+0

あなたは 'GROUP_CONCAT'を意味しますか? http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function%5Fgroup-concat – ck1

+0

こんにちはconcatが認識されません、私はなぜわからない –

答えて

0
SELECT DISTINCT 
     STUFF((SELECT ',' + p.[name] 
      FROM Products p 
      WHERE cp.ProductID = p.ProductID 
      FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'') AS Name 
    , cd.CustomerName, cd.CustomerEmailID 
    ,cd.CustomerPhoneNo,cd.CustomerAddress 
    ,cd.TotalPrice,cd.OrderDateTime, cd.PaymentMethod 
FROM CustomerDetails cd 
Inner Join CustomerProducts cp ON cp.CustomerID = cd.Id 
+0

こんにちは、ありがとうございます。エラーはありませんが、私には同じ結果が与えられます。同じIDの2つの製品はまだ2つのテーブルを持っています –

+0

私はクエリがGroupBy CustomerIDを必要とすると思います。 – Berkay

+0

SQL Fiddleをセットアップできますか?データにアクセスすることなく、どこに間違っているかを伝えるのは難しいです。 –

関連する問題