嗨,我正在做一个项目并想创建一个视图。我在查询中使用临时表。谁能让我知道我们如何创建这样的视图?
以下是我的查询,我尝试使用 WITH..AS ,但由于插入查询而给出。
create temporary table temp_testtbl as
select id,dte,name,hrs_total
FROM dttbl.dts limit 0;
insert into temp_testtbl
select id,dte,name,hrs_total
FROM dttbl.dts
group by id,dte,name,hrs_total;
SELECT i.dte,
idm.empl_id,
1 AS entity_id,
sum(i.hrs_total) AS myhrs
FROM temp_testtbl i
JOIN schema1.mytable idm ON idm.src_id = i.iex_id::text AND idm.src_type_id = 123 AND idm.end_dte IS NULL
JOIN schema1.mytable idm2 ON idm2.empl_id = idm.empl_id AND idm2.src_type_id = 345 AND idm2.end_dte IS NULL
GROUP BY i.dte, idm.empl_id limit 100;
一个视图中不能有多个语句,您必须将整个事物表示为一个 SELECT。可以使用带有 INSERT 的 SELECT 部分的子查询来代替临时表引用。下面应该给你一个粗略的想法,尽管原始 SQL 中存在我无法根据我拥有的信息修复的错误(例如,第一个连接条件引用 i.iex_id,它在临时表中不存在或子查询)。