1
私は、複数のソースから定期的にデータを収集し、すべてのデータを1つの列に一覧表示するシステムを持っています。私はそれを成功裏にピボットして、各ソースごとに個別の列があるようにしました(下記のコードと出力を参照してください)。SQL動的ピボットクエリに条件を追加する方法は?
私の質問は:どのようにこのコードで私は特定の日(DateAndTime BETWEEN "time1"と "time2")からのみデータを引っ張って時間を増やす?
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
--Get distinct values of the PIVOT Column
SELECT @ColumnName= ISNULL(@ColumnName + ',','')
+ QUOTENAME(TagIndex)
FROM (SELECT DISTINCT TagIndex FROM dbo.FloatTable1) AS TagIndex
ORDER BY TagIndex
--Prepare the PIVOT query using the dynamic
SET @DynamicPivotQuery =
N'SELECT DateAndTime, ' + @ColumnName + '
FROM dbo.FloatTable1
PIVOT(SUM(Val)
FOR TagIndex IN (' + @ColumnName + ')) AS PVTTable'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery
これは、次のように出力します
**DateAndTime 0 1 2**
2017-12-12 16:27:41.000 17.7175064086914 0.04730224609375 -0.154193878173828
2017-12-13 10:41:19.000 17.4271354675293 0.197725296020508 -0.000985145568847656
2017-12-16 22:05:15.000 -0.0419089868664742 0.0367603302001953 0.00866413116455078
2017-12-16 13:20:25.000 -0.0222898945212364 0.0417251586914063 0.00660228729248047
2017-12-14 13:15:27.000 17.1524677276611 0.158931732177734 -0.0414285659790039
2017-12-13 12:17:28.000 17.4389095306396 0.217489242553711 0.0163974761962891
2017-12-13 22:41:27.000 17.3408145904541 0.133147239685059 -0.062190055847168
動的クエリに追加します。 –