[英]Error with SQL statement when I try to migrate it from mysql to Oracle
我应该将我的数据库从 mysql 迁移到 oracle,我的问题是我的状态不再起作用,我应该保持相同的格式(别名 champ1,champ2)
这是我的 SQL 声明:
select count(j.id) as nb, p.pname as champ1,proj.pname as champ2
from jiraissue j
join priority p on (p.id=j.priority)
join project proj on(proj.id=j.project)
join issuestatus iss on (iss.id=j.issuestatus)
join issuetype isst on(isst.id=j.issuetype )
where j.CREATED between '2011-05-18 00:00:00.0' and '2011-06-05 00:00:00.0'
and iss.pname='Open'
group by champ1,champ2;
错误:
ORA-00904: "CHAMP2" : identificateur non valide
00904. 00000 - "%s: invalid identifier"
PS:当我从 select 中删除 groupby 和别名并执行时,还会出现错误,表明日期格式无效
ORA-01861: le littéral ne concorde pas avec le format chaîne de caractères
出于多种原因,SQL 的大多数实现都不允许您对查询的 SELECT 部分中的别名进行分组。
select count(j.id) as nb, p.pname as champ1,proj.pname as champ2
from jiraissue j
join priority p on (p.id=j.priority)
join project proj on(proj.id=j.project)
join issuestatus iss on (iss.id=j.issuestatus)
join issuetype isst on(isst.id=j.issuetype )
where
j.CREATED between '2011 May 18' and '2011 June 05'
and iss.pname='Open'
group by
p.pname,
proj.pname
;
编辑 - 跟进评论:
我不确定为什么上述答案对您没有太大帮助,也许您不想在代码中重复自己? (您通过别名分组获得的东西,因此在所有其他 rdbms 中都会丢失)如果是这样,以下模式可能会有所帮助......
SELECT
COUNT(j_id) AS nb, champ1, champ2
FROM
(
select j.id AS j_id, p.pname as champ1, proj.pname as champ2
from jiraissue j
join priority p on (p.id=j.priority)
join project proj on(proj.id=j.project)
join issuestatus iss on (iss.id=j.issuestatus)
join issuetype isst on(isst.id=j.issuetype )
where
j.CREATED between '2011 May 18' and '2011 June 05'
and iss.pname='Open'
)
AS data
GROUP BY
champ1,
champ2
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.