2017-12-29 24 views
1

を返す、私はそれぞれの行のための10個の列の最大日付を計算するクエリをやっています。その質問は以下の通りです。また、Maxの日付を持つ列の名前をリストする必要があります。だから、クエリは私に[最後のステップ日]と[最後のステップ名]を与えるだろう。 [最終ステップ名]はどのように入手できますか?SQLマックス日、MS SQL Server 2008を使用して、列名

SELECT (SELECT MAX(LastUpdateDate) 
     FROM (VALUES ([Step 1]), 
         ([Step 2]), 
         ([Step 3]), 
         ([Step 4]), 
         ([Step 5]), 
         ([Step 6]), 
         ([Step 7]), 
         ([Step 8]), 
         ([Step 9]), 
         ([Step 10])) AS UpdateDate(LastUpdateDate)) AS [Last Step Date] 
FROM MyTable 

答えて

1

あなたは

SELECT ca.ColName, ca.LastUpdateDate 
FROM YourTable 
     CROSS APPLY (SELECT TOP 1 * 
        FROM (VALUES 
         ('Step1', [Step 1]), 
         ('Step2', [Step 2]), 
         ('Step3', [Step 3]), 
         ('Step4', [Step 4]), 
         ('Step5', [Step 5]), 
         ('Step6', [Step 6]), 
         ('Step7', [Step 7]), 
         ('Step8', [Step 8]), 
         ('Step9', [Step 9]), 
         ('Step10', [Step 10])) UpdateDate(ColName, LastUpdateDate) 
        ORDER BY LastUpdateDate DESC)ca 

SQL Fiddle

+0

感謝を使用することができ、それは間違いなく動作します!私はまだ複数の一時テーブルが一緒に来て、それはすべての行のために同じ値を引っ張っている全体のクエリに挿入したときに何かをする必要がありますが、私はそれを理解することができるはずです。 – sornamins

関連する問題