제목이 분명하지 않지만 Qlikview에서 할 수 있다면 사과드립니다.다른 테이블을 만들기 위해 기존 테이블에서 반복 - Qlikview
데이터베이스에서로드 된 원본 테이블입니다.
Variable Status Date Duration (Hours)
A StatusA 9/10/2017 18:30:00.00 4
A StatusB 9/10/2017 23:30:00.00 5
B StatusA 9/10/2017 10:00:00.00 8
B StatusB 9/10/2017 21:45:00.00 9
어떻게 처리할까요?
Variable Status Date Duration (Hours) FinishDate
A StatusA 9/10/2017 18:30:00.00 4 9/10/2017 22:30:00.00
A StatusB 9/10/2017 23:30:00.00 0.5 9/10/2017 23:59:59.59
A StatusB 9/11/2017 0:00:00.00 4.5 9/11/2017 3:30:00.00
B StatusA 9/10/2017 10:00:00.00 8 9/10/2017 18:00:00.00
B StatusB 9/10/2017 21:45:00.00 2.25 9/10/2017 23:59:59.59
B StatusB 9/11/2017 0:00:00.00 6.75 9/11/2017 6:15:00.00
나는이 주민 표하지만 어떻게 변수의 실행 시간이 하루에 다음 다음날로 기간을 구분하는 다른 행을 생성 초과 여부를 확인하는 방법을 통해 가능하다 알고있다. 지난 주 (또는 토요일)에 변수을 초과하면 데이터가 정확하지 않으므로 일주일 단위로 필터가 있기 때문에 이런 경우입니다.
결과 데이터는 개 변수에 따라 총 기간이 필요하며 주별로 필터링됩니다.
스크립트 :
T1:
LOAD *, timestamp(Timestamp+[Duration Hours]/24) as FinishDate;
LOAD *, timestamp(Timestamp#(left(Date,19),'DD-MM-YYYY hh:mm:ss')) as Timestamp;
LOAD
[EquipmentID] AS [Equipment ID],
[TransactionDate] AS [Date],
[LotID] AS [Lot ID],
[Status] AS [Status],
[DurationHours] AS [Duration Hours];
SQL
SELECT *
FROM [SQL_SourceDB].[dbo].[SourceTable]
WHERE [TransactionDate] >= '2016-01-01 00:00:00.000' AND [TransactionDate] <= '2016-01-31 00:00:00.000';
Left Join // add a split-flag where needed
LOAD Distinct Timestamp,FinishDate,fabs(Date(left(FinishDate,10))-Date(left(Timestamp,10)) >=1) as SplitFlag
Resident T1;
T2: // load first part (current day) of split-flag=1
LOAD
[Equipment ID],
[Timestamp] AS [Date],
[Lot ID],
[Status],
round((DayEnd(Timestamp)-Timestamp)*24,0.1) AS [Duration Hours]
Resident T1
Where SplitFlag=1;
Concatenate // load second part (next day) where split-flag=1
LOAD
[Equipment ID],
daystart(FinishDate) AS [Date],
[Lot ID],
[Status],
round((FinishDate-daystart(FinishDate))*24,0.1) AS [Duration Hours]
Resident T1
Where SplitFlag=1;
Concatenate // add the rest of the data (split-flag=0)
LOAD * Resident T1 Where SplitFlag=0;
DROP Table T1;
체크 아웃 내가 관련된 다른 질문이 @EldadT "간격"기능 – EldadT
를 친절하게 확인하십시오 : https://stackoverflow.com/questions/46400966/add-and-deduct-on-datetime-qlikview –
확인 .. 확인 아래 내 대답을 – EldadT