2011-08-16 4 views
1

mysql에서 oracle로 데이터베이스를 마이그레이션해야합니다. 내 satement가 더 이상 작동하지 않습니다. 나는 동일한 형식 (별칭 champ1, champ2를)mysql을 Oracle에서 Oracle로 마이그레이션 할 때 SQL 문의 오류가 발생했습니다.

이 내 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 : 나는 GROUPBY 별명에서 제거 할 때 선택하고 실행하십시오. 날짜 형식이 잘못되었음을 나타내는 오류가 나타납니다.

ORA-01861: le littéral ne concorde pas avec le format chaîne de caractères 
+1

'그룹 (문제는 별칭에 의해 그룹화하여 얻을, 그래서 다른 모든 RDBMS에 손실). MySQL은 예의 바르고 쿼리의 다른 곳에서 필드 별칭을 사용할 수 있습니다. 다른 데이터베이스는 그렇게 좋지 않습니다. –

답변

3

전체 대부분의 이유 때문에 SQL의 대부분의 구현에서는 쿼리의 SELECT 섹션에서 별칭을 지정한 GROUP BY를 허용하지 않습니다.

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 
; 


편집 - 의견을 후속 :

을 나는 위의 대답은 꽤 도움이 당신이, 어쩌면 당신이 자신을 반복하지 않으 않는 이유에 확실 해요 암호? 그렇다면, p.name에 의해 ... 다음 패턴이 도움이 될 수 proj.name`을

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 
; 
+0

답장을 보내 주셔서 감사합니다.하지만 구멍 응용 프로그램이 이와 같은 쿼리를 기반으로하기 때문에 큰 문제가됩니다 !! – rym

+0

당신은 단지 내가 대답에서 한 것을 할 필요가 있고, 마크 B는 코멘트에 게시 한 것을 할 필요가 있습니다; 소스 데이터에있는 GROUP BY 필드 (또는 필드의 계산). – MatBailie

관련 문제