Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @Mid Int;
- DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
- DECLARE @Name Varchar(50);
- SET @Name = (Select Name from D_Master where ID = @Mid);
- DECLARE @watt int;
- SET @watt = 230;
- DECLARE @Interval Int;
- SET @Interval = 15;
- DECLARE @StartDate DateTime,@EndDate DateTime;
- SET @StartDate = (select CreatedDate from dbo.D_Master where ID=@Mid);
- SET @EndDate = select MAX(StartTime) from Data;
- DECLARE @ProcessingStartDate TABLE(
- P_Id bigint NOT NULL,
- S_Id bigint NOT NULL,
- SDate DateTime
- );
- INSERT INTO @ProcessingStartDate (P_Id, S_Id, SDate)
- select P_Id,S_Id, MAX(StartDate) as SDate from hourdata where id = @Mid group by S_Id, P_Id;
- DECLARE @ProcessingEndDate TABLE(
- P_Id bigint NOT NULL,
- S_Id bigint NOT NULL,
- SDate DateTime
- );
- INSERT INTO @ProcessingEndDate (P_Id, S_Id, SDate)
- select P_Id,S_Id, MAX(StartTime) as SDate from data where id = @Name group by S_Id, P_Id;
- MERGE dbo.HourData AS T
- USING (
- SELECT Id, S_Id, P_Id,SDate, SYear, SMonth, SDay, SHour, SUM(AvgOfIC) AS HourSumOfUse,
- dbo.GetPower(SUM(AvgOfIC),1,S_Id,P_Id,230,15) As Powers
- FROM
- (
- SELECT Id, S_Id, P_Id,
- CONVERT(date,StartTime) AS SDate,
- YEAR(StartTime) AS SYear,
- MONTH(StartTime) AS SMonth,
- DAY(StartTime) AS SDay,
- DATEPART ("HH",StartTime) AS SHour,
- DATEPART ("Mi", StartTime) AS SMinute,
- CAST((DATEPART ("ss", StartTime)/15 + 1) as Int) AS 'Quater_Minute',
- Avg(IC) AS AvgOfIC
- FROM dbo.Data
- WHERE Id = @Mid
- and StartTime >= ISNULL((select Max(StartDate) from hourdata
- where id = @Mid and S_Id = S_Id and P_Id = P_Id),@StartDate) and
- StartTime <= ISNULL(( select MAX(StartTime) from data
- where id = @Name and S_Id = S_Id and P_Id = P_Id ),@EndDate )
- GROUP BY Id, S_Id, P_Id,
- CONVERT(date, StartTime) ,
- YEAR(StartTime),
- MONTH(StartTime),
- DAY(StartTime),
- DATEPART ("HH",StartTime),
- DATEPART ("Mi", StartTime),
- CAST(DATEPART ("ss", StartTime)/15 + 1 as Int)
- ) As InnerTable
- GROUP BY Id, S_Id, P_Id, SDate,
- SYear,
- SMonth,
- SDay,
- SHour ) AS S
- --SDate add date
- ON (T.Id = @Mid and T.S_Id = S.S_Id and T.P_Id = S.P_Id and
- CONVERT(date, T.StartDate) = CONVERT(date, SDate) and T.HourShow = S.SHour)
- WHEN NOT MATCHED BY TARGET
- THEN INSERT(Id, S_Id, P_Id, Powers, HourShow, StartDate) VALUES(@Mid, S.S_Id, S.P_Id,HourSumOfUse, S.SHour,
- DATEADD(day, DATEDIFF(day, 0, S.SDate), Convert(Varchar(8),S.SHour) + ':00:00'))
- WHEN MATCHED
- THEN UPDATE SET T.HourShow = S.SHour , Powers = HourSumOfUse
- OUTPUT $action INTO @SummaryOfChanges;
- SELECT Change, COUNT(*) AS CountPerChange FROM @SummaryOfChanges
- GROUP BY Change;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement