sql >> データベース >  >> RDS >> Sqlserver

日付順のリストから前のゼロ以外の値を見つける

    これがサンプルテーブルです

    SELECT * INTO #TEMPFROM(SELECT 'Item1' [アイテム名], '01/01/2013' [日付], 10.00 [価格]UNION ALLSELECT 'Item1', '02/01/2013', 9.50UNION ALLSELECT 'Item1', '03/01/2013', 0UNION ALLSELECT 'Item1', '04/01/2013', 7.50UNION ALLSELECT 'Item1', '05/01/2013', 0.00UNION ALLSELECT 'Item1' , '06/01/2013', 0.00UNION ALLSELECT 'Item1', '07/01/2013', 11.00UNION ALLSELECT 'Item2', '01/01/2013', 0.00UNION ALLSELECT 'Item2', '02/01 /2013', 12.00UNION ALLSELECT 'Item2', '03/01/2013', 0.00UNION ALLSELECT 'Item2', '04/01/2013', 0.00UNION ALLSELECT 'Item2', '05/01/2013', 13.00 )TAB  

    そして結果クエリ

     SELECT [Item Name],[Date],CASE WHEN [Price]=0 THEN ISNULL((SELECT TOP 1 [Price] FROM #TEMP T2 WHERE CAST(T2.[Date] AS DATE)0 ORDER BY CAST(T2.[日付] AS DATE) DESC),0) ELSE [価格] END [価格]FROM #TEMP T1  

    結果はこちら

    これが実際の Fiddle http://sqlfiddle.com/#!3/afabd/1<です。 /a> (ページのロード中にエラーが表示された場合は、RUNSQL を押してください。動作します)




    1. ActiveRecordを使用してPostgres列のデフォルト値にアクセスするにはどうすればよいですか?

    2. .netでOracleデータベースの変更をリッスンする

    3. MySQLのタイムゾーンをUTCに設定する必要がありますか?

    4. Pythonパンダ-to_sqlを使用して大きなデータフレームをチャンクに書き込む