2012-06-22 3 views
0

현재 다른 유형의 문서를보고하는 보고서가 있습니다. 각 문서에는 완료해야하는 배정 된 배율 (예 : 2 일, 4 일 등)이 있습니다. 100 종류 이상의 문서가 있습니다. 현재 각 문서의 배정 된 시간 척도는 Excel 스프레드 시트에 보관되어 vlookup 공식 (평가 ID 기준)을 사용하여 Excel의 데이터와 일치합니다. 불행하게도이 데이터베이스에 할당 된 시간 척도를 넣을 곳이 없지만 데이터베이스에서 보고서를 실행하여 Excel에서이 추가 조작을 수행하지 않고도 사용자에게 보낼 수 있기를 바랍니다. (나는 대규모 경우 문을 작성하여이를 수 있다는 것을 알고Oracle SQL - 방대한 케이스 문을 구성하는보다 효율적인 방법이 있습니까

SELECT 
ID, 
CASE WHEN ID = 1 then '1 day' 
WHEN ID = 2 then '42 days' 
WHEN ID = 3 then '16 days' 
ELSE 'CHECK' end as 'Timescale' 
FROM TABLE1 

(아래는 예입니다)하지만 SQL에서이 일을 더 효율적인 방법이 있다면 궁금했다 이 레코드를 데이터베이스에 추가 필드를 요청하는 외에!)? 그것은 없을 수도 있지만 물어볼만한 가치가 있다고 생각했습니다! 감사. 당신이있는 경우

+0

"효율적인"이란 무엇을 의미합니까? 실행 시간면에서이 쿼리는 매우 효율적이어야합니다. 저장 프로 시저 또는 저장 함수를 더 효율적으로 만들 수는 있지만 여전히 case 문이 있습니다. –

+0

'데이터베이스에이 배정 된 시간 표시를 넣을 곳이 없다'고 말하면, 새 테이블을 만들조차 수 없다는 뜻입니까? – archimede

+0

우리의 쿼리는 데스크톱 인텔리전스를 통해 실행되므로 새 테이블을 만들 수 있는지 확실하지 않습니다. – bawpie

답변

0

그래서 당신은

내가이 완전히 불가능하다고 생각 ... Oracle 테이블 및 엑셀 시트 사이에 가입하려는. 2 가지 방법이 있습니다. 당신은 오라클에 동참 할 수있는

방법 1. 즉, 엑셀 시트를 읽을 수있는 Java 저장 프로 시저를 작성해야합니다. 다음 단계는이 Java 저장 프로 시저를 래핑하기위한 PL/SQL 래퍼를 만드는 것입니다. PL/SQL 래퍼를 통해 Java 저장 프로 시저를 호출하는 SQL 문을 작성하면이 SQL 문이 Oracle 테이블과 조인 할 수 있습니다.

예, 실제로 이것은 매우 복잡합니다.

방법 2. 당신이 ODBC를 통해 오라클 엑셀 시트에서 연결할 수 있다고 생각합니다. Excel에서 오라클로부터 데이터를 가져올 수 있어야합니다. 그래서 Excel은 당신을위한 합류를 할 수 있습니다.

예 실제로이 매우 복잡하다.

(Bob Jarvis가 제안한 것처럼)이 추가 데이터를 새로운 Timescale 테이블에 넣을 수도 있지만 Excel 시트와 Oracle 테이블을 동기화해야합니다.

모든 데이터를 Oracle로 이동할 수도 있습니다. 아니면 모든 데이터를 Excel로 옮길 수 있습니까?

+0

내 질문에 대답했거나 적어도 다른 가능성을 제안했다고 생각합니다. 저는 성명서를 고수하고 공급자를 통해 데이터베이스에이를 추가 할 수 있도록 요청할 것이라고 생각합니다. – bawpie

5

는 100 다른 시간은 데이터베이스에 날짜 표시 줄 테이블을 추가하고 스프레드 시트에서 비즈니스에 중요한 정보를 저장 도망하는 것이 합리적 일 것입니다 확장 할 수 있습니다. 엑셀, 훌륭한 제품에 대한 것은 아니지만, 가장 친한 친구 중 일부는 Excel 스프레드 시트입니다.하지만 비즈니스에 중요한 정보는 저장하지 않습니다.

공유하고 즐기십시오.

+0

데이터베이스를 유지 관리하는 공급 업체는 느리고 유연성이 떨어지는 것으로 악명이 높습니다. 심지어 데이터베이스에 대한 간단한 수정을 요청하는 경우에도 (운이 좋으면) 몇 달이 걸릴 수 있습니다. 그것은 확실히 내가 요청할 수있는 것이지만 그 동안 나는 여전히 보고서를 실행하고 싶습니다. – bawpie

+1

'공급 업체'가 기본 서비스를 수행하는 것을 꺼려한다면 아마도 다른 공급 업체를 조사하고 현재 공급 업체가 현재하고있는 일과 그 이유를 정확하게 알게 될 때입니다. 이것은 그들이 당신의 사업을 지키기를 원하고 당신의 데이터를 파괴하지 않을 것이라고 가정합니다. –

+0

당신은 내가 그것을 할 수있는 영향력을 가지고 있다고 가정하고 있습니다.)). – bawpie