に日付を集約:は、私は、テーブルからデータを提示する必要があり報告の目的のために1列
table A (column1, column2, date1, date2, date3,...,dateN)
マイクエリ#で区切られた1つの列内のすべての日付を提示する必要があります。
(YYYY-MM-DD# YYYY-MM-DD#..)
しかし、問題は製品ごとに異なる日付の数がある可能性があるため、日付列の数が固定されていないことです。
に日付を集約:は、私は、テーブルからデータを提示する必要があり報告の目的のために1列
table A (column1, column2, date1, date2, date3,...,dateN)
マイクエリ#で区切られた1つの列内のすべての日付を提示する必要があります。
(YYYY-MM-DD# YYYY-MM-DD#..)
しかし、問題は製品ごとに異なる日付の数がある可能性があるため、日付列の数が固定されていないことです。
この文は、PostgreSQLの動作しますが、あなたは、私が思うSQLサーバのため+
で||
を置き換えることができ、それが動作するはずただ試してみて、あなたがする必要があります残りを把握することができます。
||
は、postgresの連結記号であるか、利用可能な連結機能を使用することもできます。
SELECT column1 || CASE WHEN column2 IS NOT NULL THEN '#' || column2 ELSE '' END || ... FROM tablehere
それが役に立てば幸い!
検討の結果、私は自分の答えを変更したいと思います。おそらく、少し軽く
Declare @YourTable table (Column1 int,Column2 int,date1 date,date2 date,date3 date)
Insert Into @YourTable values
(1,25,'2016-01-15','2016-03-22',null),
(2,50,'2016-04-15','2016-07-29','2016-09-30')
Select Column1
,Column2
,Dates=Replace(Replace((
Select x=format(date1,'yyyy-MM-dd# ')
,x=format(date2,'yyyy-MM-dd# ')
,x=format(date3,'yyyy-MM-dd# ')
--x=format(dateNN,'yyyy-MM-dd# ')
For XML Path('')
) ,'<x>',''),'</x>','')
From @YourTable
戻り
Column1 Column2 Dates
1 25 2016-01-15# 2016-03-22#
2 50 2016-04-15# 2016-07-29# 2016-09-30#
出力はまだ間違っていますが、最後に#がありますが、そこにはいけません。 –
@RaulCuth要求事項を理解していない –
はい、そうかもしれませんが、ユーザーは次のように述べています:私のクエリは#で区切られた1つの列にすべての日付を表示する必要があります。 –
サンプルデータと期待される結果を示します。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –
あなたは 'date1、date2、..、dateN'を生成したソースを表示する必要があります。 –
製品の日付が異なることを意味しますか? tableAは動的ビューですか? –