你能告诉我,为什么这个查询中pgAdmin的工作,但不与软件使用ODBC:的PostgreSQL,ODBC和临时表
CREATE TEMP TABLE temp296 WITH (OIDS) ON COMMIT DROP AS
SELECT age_group AS a,male AS m,mode AS t,AVG(speed) AS speed
FROM person JOIN info ON person.ppid=info.ppid
WHERE info.mode=2
GROUP BY age_group,male,mode;
SELECT age_group,male,mode,
CASE
WHEN age_group=1 AND male=0 THEN (info_dist_km/(SELECT avg_speed FROM temp296 WHERE a=1 AND m=0))*60
ELSE 0
END AS info_durn_min
FROM person JOIN info ON person.ppid=info.ppid
WHERE info.mode IN (7) AND info.info_dist_km>2;
我“42P01:ERROR:关系‘temp296’不存在”。
我也尝试过“BEGIN; COMMIT;” - “HY010:光标打开”。
PostgreSQL的9.0.10,采用Visual C++编译建立1500,64位 psqlODBC 09.01.0200 Windows 7的64位
你可以重写使用临时表到CTE的查询吗?在这种情况下你仍然会遇到错误吗? – SingleNegationElimination
我不熟悉CTE-I在第二个** SELECT **之前,我用** temp296 AS(**和**)** **取代了整个** CREATE **行。它是否正确?现在它可以工作。两个问题:为什么不是** CREATE TEMP TABLE **版本OK?CTE如何在具有多个连接的环境中同时运行(使用相同的凭据) - 用户不会覆盖第一个结果** SELECT **? – Tom