| Author |
Topic |
|
nskatp
Starting Member
8 Posts |
Posted - 2008-05-26 : 20:53:30
|
| Hi,I'm new to SQL and I will appreciate your help, my knowledge only goes so far and I think this task is above my skills. I'm trying to get information form a table in a certain format that allows me to summarize data on an hourly basis but I think I need need to use DATEPART.The table looks like this:Group Date_changed Object Proc Idx Value Offset295 2008-05-19 00:05:00.000 OBJ_1 PRC1 10 2000 8544295 2008-05-19 00:05:00.000 OBJ_1 PRC1 11 3000 6860295 2008-05-19 00:05:00.000 OBJ_1 PRC1 12 4000 1372295 2008-05-19 00:05:00.000 OBJ_2 PRC1 10 1000 2058295 2008-05-19 00:05:00.000 OBJ_2 PRC1 11 2000 2744295 2008-05-19 00:05:00.000 OBJ_2 PRC1 12 3000 3430295 2008-05-19 00:05:00.000 OBJ_3 PRC1 10 7000 4116295 2008-05-19 00:05:00.000 OBJ_3 PRC1 11 6000 4102295 2008-05-19 00:05:00.000 OBJ_3 PRC1 12 5000 4802295 2008-05-19 00:10:00.000 OBJ_1 PRC1 10 2500 4602295 2008-05-19 00:10:00.000 OBJ_1 PRC1 11 3500 4502295 2008-05-19 00:10:00.000 OBJ_1 PRC1 12 4500 5481295 2008-05-19 00:10:00.000 OBJ_2 PRC1 10 1200 5482295 2008-05-19 00:10:00.000 OBJ_2 PRC1 11 2200 5483295 2008-05-19 00:10:00.000 OBJ_2 PRC1 12 3200 5484295 2008-05-19 00:10:00.000 OBJ_3 PRC1 10 7450 6174295 2008-05-19 00:10:00.000 OBJ_3 PRC1 11 6450 6175295 2008-05-19 00:10:00.000 OBJ_3 PRC1 12 5450 6176.........it contains data on 5 minutes intervals for each object and index.I'm trying to summarize the data by Idx, I used this query:select datepart(hour,date_changed) as Hour, Object,avg(Value) as Avg_Idx_10from table1where group = 295 and idx = 10 and Object = 'OBJ_1' and datetime_changed < '2008-05-20' group by datepart(hour,datetime_changed), ObjectHour Object Avg_Idx_100 OBJ_1 63461 OBJ_1 50392 OBJ_1 45333 OBJ_1 51024 OBJ_1 90195 OBJ_1 235116 OBJ_1 52575.........And I get the information I need but each query shows only the data for 1 Idx, what I was wondering is if I can create a query that will allow me to summarize data on average Idx for all the idx in just 1 row yo obtain an output like this:Hour Object Idx_10_Avg Idx_11_Avg Idx_12_Avg0 OBJ_1 7500 3200 95000 OBJ_2 8400 7600 58000 OBJ_3 4700 6500 3400.........Again, I'll appreciate any help, thanks in advance. |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-05-27 : 00:11:48
|
Use PIVOTDECLARE @Timeinfo table([Group] int, Date_changed datetime, [Object] varchar(5),[Proc] char(4),Idx int,[Value] int,Offset int)INSERT INTO @TimeinfoSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_1', 'PRC1', 10, 2000, 8544UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_1', 'PRC1', 11, 3000, 6860UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_1', 'PRC1', 12, 4000, 1372UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_2', 'PRC1', 10, 1000, 2058UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_2', 'PRC1', 11, 2000, 2744UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_2', 'PRC1', 12, 3000, 3430UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_3', 'PRC1', 10, 7000, 4116UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_3', 'PRC1', 11, 6000, 4102UNION ALLSELECT 295, '2008-05-19 00:05:00.000', 'OBJ_3', 'PRC1', 12, 5000, 4802UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_1', 'PRC1', 10, 2500, 4602UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_1', 'PRC1', 11, 3500, 4502UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_1', 'PRC1', 12, 4500, 5481UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_2', 'PRC1', 10, 1200, 5482UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_2', 'PRC1', 11, 2200, 5483UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_2', 'PRC1', 12, 3200, 5484UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_3', 'PRC1', 10, 7450, 6174UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_3', 'PRC1', 11, 6450 ,6175UNION ALLSELECT 295, '2008-05-19 00:10:00.000', 'OBJ_3', 'PRC1', 12, 5450, 6176UNION ALL--SELECT 295, '2008-05-19 01:05:00.000', 'OBJ_1', 'PRC1', 10, 2000, 8544UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_1', 'PRC1', 11, 3000, 6860UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_1', 'PRC1', 12, 4000, 1372UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_2', 'PRC1', 10, 1000, 2058UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_2', 'PRC1', 11, 2000, 2744UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_2', 'PRC1', 12, 3000, 3430UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_3', 'PRC1', 10, 7000, 4116UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_3', 'PRC1', 11, 6000, 4102UNION ALLSELECT 295, '2008-05-19 01:05:00.000', 'OBJ_3', 'PRC1', 12, 5000, 4802UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_1', 'PRC1', 10, 2500, 4602UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_1', 'PRC1', 11, 3500, 4502UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_1', 'PRC1', 12, 4500, 5481UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_2', 'PRC1', 10, 1200, 5482UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_2', 'PRC1', 11, 2200, 5483UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_2', 'PRC1', 12, 3200, 5484UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_3', 'PRC1', 10, 7450, 6174UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_3', 'PRC1', 11, 6450 ,6175UNION ALLSELECT 295, '2008-05-19 01:10:00.000', 'OBJ_3', 'PRC1', 12, 5450, 6176SELECT [Hour],[Object],[10] AS Idx_10_Avg,[11] AS Idx_11_Avg,[12] AS Idx_12_Avg FROm(SELECT [Group],DATEPART(hh,Date_changed)AS [Hour],[Object],[Proc],Idx ,[Value] FROM @TimeInfo)mPIVOT (AVG([Value]) FOR Idx IN ([10],[11],[12]))poutput-------------------------------------------Hour Object Idx_10_Avg Idx_11_Avg Idx_12_Avg----------- ------ ----------- ----------- -----------0 OBJ_1 2250 3250 42500 OBJ_2 1100 2100 31000 OBJ_3 7225 6225 52251 OBJ_1 2250 3250 42501 OBJ_2 1100 2100 31001 OBJ_3 7225 6225 5225 |
 |
|
|
nskatp
Starting Member
8 Posts |
Posted - 2008-05-27 : 11:38:28
|
| Visakh16, thanks a lot, that was exactly what I was looking for.Now, is there any way that the 'dateparted' Hour can be shown as YYYY-MM-DD HH:MM:SS? instead of just the hour? |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-05-27 : 11:47:43
|
quote: Originally posted by nskatp Visakh16, thanks a lot, that was exactly what I was looking for.Now, is there any way that the 'dateparted' Hour can be shown as YYYY-MM-DD HH:MM:SS? instead of just the hour?
SELECT m.Date_changed,[Object],[10] AS Idx_10_Avg,[11] AS Idx_11_Avg,[12] AS Idx_12_Avg FROm(SELECT [Group],DATEPART(hh,Date_changed)AS [Hour],Date_changed,[Object],[Proc],Idx ,[Value] FROM @TimeInfo)mPIVOT (AVG([Value]) FOR Idx IN ([10],[11],[12]))p |
 |
|
|
nskatp
Starting Member
8 Posts |
Posted - 2008-05-27 : 12:23:06
|
| Thanks again, but the results are not what I'm looking for:time Object Idx_10_Avg Idx_11_Avg Idx_12_Avg----------------------- ------ ----------- ----------- -----------2008-05-19 00:05:00.000 OBJ_1 2000 3000 40002008-05-19 00:05:00.000 OBJ_2 1000 2000 30002008-05-19 00:05:00.000 OBJ_3 7000 6000 50002008-05-19 00:10:00.000 OBJ_1 2500 3500 45002008-05-19 00:10:00.000 OBJ_2 1200 2200 32002008-05-19 00:10:00.000 OBJ_3 7450 6450 54502008-05-19 01:05:00.000 OBJ_1 2000 3000 40002008-05-19 01:05:00.000 OBJ_2 1000 2000 30002008-05-19 01:05:00.000 OBJ_3 7000 6000 50002008-05-19 01:10:00.000 OBJ_1 2500 3500 45002008-05-19 01:10:00.000 OBJ_2 1200 2200 32002008-05-19 01:10:00.000 OBJ_3 7450 6450 5450I was looking for something like this:Hour Object Idx_10_Avg Idx_11_Avg Idx_12_Avg----------- ------ ----------- ----------- -----------00:00:00 OBJ_1 2250 3250 425000:00:00 OBJ_2 1100 2100 310000:00:00 OBJ_3 7225 6225 522501:00:00 OBJ_1 2250 3250 425001:00:00 OBJ_2 1100 2100 310001:00:00 OBJ_3 7225 6225 5225adding YYYY-MM-DD also. |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-05-27 : 12:34:49
|
CONVERT(CHAR(8), getdate(), 108) E 12°55'05.25"N 56°04'39.16" |
 |
|
|
nskatp
Starting Member
8 Posts |
Posted - 2008-05-27 : 12:43:23
|
| sorry, I meant:Hour Object Idx_10_Avg Idx_11_Avg Idx_12_Avg----------------- ------ ----------- ----------- -----------20080519 00:00:00 OBJ_1 2250 3250 425020080519 00:00:00 OBJ_2 1100 2100 310020080519 00:00:00 OBJ_3 7225 6225 522520080519 01:00:00 OBJ_1 2250 3250 425020080519 01:00:00 OBJ_2 1100 2100 310020080519 01:00:00 OBJ_3 7225 6225 5225I'm trying to use DATEPART to round-up the times for hourly summarization but instead of just the hour displayed I need to display the YYYYMMDD HH:MM:SS |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-05-27 : 16:12:51
|
SELECT DATEADD(HOUR, DATEDIFF(HOUR, '19000101 00:00', getdate()), '19000101 00:00') E 12°55'05.25"N 56°04'39.16" |
 |
|
|
nskatp
Starting Member
8 Posts |
Posted - 2008-05-28 : 01:07:55
|
| thanks a lot for your help, this is what I ended up using and worked as required:DATEADD(HOUR, DATEDIFF(DAY, '19000101 00:00', [Hour]),'20080519')Thanks again. |
 |
|
|
|
|
|