2017-10-03 3 views
1

2つのクエリの値を組み合わせてカンマ区切りで表示する必要があり、その中から別のものを取得する必要があります。私は結合/共用体をすべて使用しようとしましたが、各値で別々のものを使用しましたが、値が一般的であれば誰かがこれを手伝ってください。以下は、私のクエリと出力されsqlの結果から重複を削除

SELECT DISTINCT 
    (SELECT DISTINCT 
     ISNULL((SELECT TOP 1 PV.serialnumber 
       FROM ConsumerItemsTable PV 
       WHERE PV.ItemID = 61) + ',' , '') + 
     ISNULL(STUFF((SELECT distinct ',' + itemid 
         FROM CustomerItems b 
         WHERE Name = 'WillamRobbe' 
         FOR XML PATH('')), 1, 1, '') + ',' , '')) 

最初のクエリの出力は、2番目のクエリの0991345

出力が0033874,0991345,8877425

  • 予想される出力は0033874,0991345,8877425
  • であるです現在の出力は0991345,0033874,0991345,8877425

答えて

1

ここでは0を使用していますと派生テーブルを使用してfor xmlクエリ内側外側selectを動かす:

select stuff((
    select ',' + itemid 
    from (
     select itemid 
     from CustomerItems b 
     where Name = 'WillamRobbe' 
     union 
     select top 1 serialnumber 
     from ConsumerItemsTable pv 
     where pv.Itemid = 61 
    ) s 
    for xml path('') 
    ), 1, 1, '') 

rextesterデモ:http://rextester.com/UXIK17206

戻り値:0033874,0991345,8877425

関連する問題