안녕하세요,
MSSQL 쿼리문을 실무에서 사용하다 동일한 쿼리문을 Postgresql 쿼리문으로 바꿔 사용하려 합니다.
문법이 조금 다른 관계로 검색해보면서 쿼리문을 수정해보았는데, 잘 되지 않아서 도움을 요청드립니다.
감사합니다.
(MSSQL 쿼리문은 다음과 같습니다.)
declare @time_start datetime
declare @time_end datetime
declare @temptable table(StartDate varchar(10),EndDate varchar(10), Connect_Count nvarchar(512))
declare @temptable2 table(StartDate varchar(10),EndDate varchar(10), Use_VM_Count nvarchar(512))
declare @i int
declare @day_start datetime
declare @cc int
set @time_start='2020-01-01' --조회 시작날짜
set @time_end='2020-12-31' -- 조회 종료날짜
------- 1. 일별 접속 횟수 Query----------------------------------------------
set @i=DATEPART(dd,@time_start)
set @day_start=@time_start
while @i<=DATEdiff(d,@time_start,@time_end+1)
begin
-- 데이터 조회
SELECT distinct @cc=count(ed.StrValue)
FROM dbo.event_historical AS ev,
dbo.event_data_historical AS ed
WHERE ev.EventID = ed.EventID
And ed.Name='UserDisplayName'
and ev.EventType='BROKER_USERLOGGEDIN'
and ev.Time between @day_start and @day_start+1
-- 조회된 데이터 임시테이블에 Insert
insert into @temptable
values(convert(varchar(10),@day_start,120)
,convert(varchar(10),@day_start+1,120)
,@cc)
set @day_start=dateadd(d,1,@day_start)
set @i=@i+1
end
set @day_start=''
set @i=0
set @cc=0
-- Insert된 임시 테이블 조회
select *
from @temptable
------- 2. 일별 사용된 VM 수 Query----------------------------------------------
set @i=DATEPART(dd,@time_start)
set @day_start=@time_start
while @i<=DATEdiff(d,@time_start,@time_end+1)
begin
-- 데이터 조회
select @cc = COUNT(*)
from
(
SELECT distinct ed.StrValue, ev.Node
FROM dbo.event_historical AS ev
LEFT OUTER JOIN dbo.event_data_historical AS ed
ON ev.EventID = ed.EventID
WHERE (ev.EventType='AGENT_PENDING' or ev.EventType='AGENT_DISCONNECTED' or ev.EventType='AGENT_ENDED')
and ed.Name='UserDisplayName'
and ev.Time between @day_start and @day_start+1
)a
-- 조회된 데이터 임시테이블에 Insert
insert into @temptable2
values(convert(varchar(10),@day_start,120)
,convert(varchar(10),@day_start+1,120)
,@cc)
set @day_start=dateadd(d,1,@day_start)
set @i=@i+1
end
set @day_start=''
set @i=0
set @cc=0
-- Insert된 임시 테이블 조회
select *
from @temptable2
|