このようにやっているときに複数の列があるときにクエリで個別の値を選択する方法 エラーが発生しています
select distinct tempname,rundate from History_Table ORDER BY RunDate DESC
編集::
グリッドビューでこのように表示する必要があります
Name Rundate
Test DDL(to show all the rundates)
Test1 rundate
このようにやっているときに複数の列があるときにクエリで個別の値を選択する方法 エラーが発生しています
select distinct tempname,rundate from History_Table ORDER BY RunDate DESC
編集::
グリッドビューでこのように表示する必要があります
Name Rundate
Test DDL(to show all the rundates)
Test1 rundate
実行日を1つの文字列に連結したいようです。これは、sql-serverのxml拡張機能を使用して実行できます。
SELECT t1.TempName,
STUFF(( SELECT ', [' + CONVERT(VARCHAR, t2.RunDate, 103) + ']'
FROM History_Table t2
WHERE t1.TempName = t2.TempName
ORDER BY t2.RunDate
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 2, '') [RunDates]
FROM ( SELECT DISTINCT TempName
FROM History_Table
) t1
XMLを使用して文字列を連結する方法の完全な説明は、別の質問に対するKMの回答の助けを借りて、ここにある別の回答に含まれています。
DISTINCT は個別の行を与える
1 つのランデート (Last、First など) を持つ tempname が必要なようです。これは、GROUP BY を使用して実現できます。次の例では、最終実行日で結果 tempname が得られます
SELECT tempname,MAX(rundate) AS rundate FROM History_Table GROUP BY tempname
ORDER BY も使用できます。
SELECT tempname,rundate
FROM
(SELECT tempname,MAX(rundate) AS rundate FROM History_Table GROUP BY tempname) AS SummaryTable
ORDER BY rundate
2 つの別々のクエリが必要なようです。1 つは個別の一時名を取得するためのもので、もう 1 つはランデートを取得するためのものです。現在のクエリは、2 つの異なる組み合わせを正しく返しています。