database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1446 게시물 읽기
No. 1446
이런 오라클 쿼리가 MS-SQL 에서 구현가능할까요?
작성자
엄원탁
작성일
2004-07-22 16:26
조회수
3,704

아래의 오라클 쿼리가 MS-SQL 로 데이터베이스가 변경될 시에 똑같이 구현이 가능할까요?
아님 프로그램으로 구현을 해야 할까요?
조언 바랍니다.

SELECT company_name, name, email
FROM (
SELECT p.company_name -- 파트너 회사명
,p.staff name -- 담당자명
,p.email_id ||'@'|| p.email_domain email -- 담당자 메일
FROM prm_partner p
, cs_zipcode zip
, (
select partner_id
,replace(LTRIM(replace(
max(decode(field_code , 'HCP', 'HCP'))||
max(decode(field_code , 'HLP', ' / HLP'))||
max(decode(field_code , 'HSP', ' / HSP'))||
max(decode(field_code , 'HGP', ' / HGP'))||
max(decode(field_code , 'HEP', ' / HEP'))||
max(decode(field_code , 'HOP', ' / HOP'))
, '/', '')), ' ', ' / ') mk_field
from prm_partner_market_field
group by partner_id
) fl
$mf_tbl
WHERE p.partner_id = fl.partner_id (+)
AND p.addr_id = zip.objid (+)
$market_field_where
$cond_area
$cond_ceo_name
$cond_company_name
$cond_class
$cond_status
$cond_partner_id
$cond_b_join_date
$cond_e_join_date
--
UNION ALL
--
SELECT pp.company_name -- 파트너 회사명
, pm.name -- 영업담당자 명
, pm.email_id||'@'||pm.email_domain email -- 영업담당자 메일
FROM prm_marketer pm
,prm_partner pp
WHERE pm.partner_id = pp.partner_id
AND pm.active = '1' -- 활동중인 영업담당자만...
AND pm.partner_id IN (
SELECT p.partner_id -- 파트너 아이디
FROM prm_partner p
, cs_zipcode zip
, (
select partner_id
,replace(LTRIM(replace(
max(decode(field_code , 'HCP', 'HCP'))||
max(decode(field_code , 'HLP', ' / HLP'))||
max(decode(field_code , 'HSP', ' / HSP'))||
max(decode(field_code , 'HGP', ' / HGP'))||
max(decode(field_code , 'HEP', ' / HEP'))||
max(decode(field_code , 'HOP', ' / HOP'))
, '/', '')), ' ', ' / ') mk_field
from prm_partner_market_field
group by partner_id
) fl
$mf_tbl
WHERE p.partner_id = fl.partner_id (+)
AND p.addr_id = zip.objid (+)
$market_field_where
$cond_area
$cond_ceo_name
$cond_company_name
$cond_class
$cond_status
$cond_partner_id
$cond_b_join_date
$cond_e_join_date
) -- end IN
) -- from
GROUP BY company_name,name,email

이 글에 대한 댓글이 총 1건 있습니다.

SQL SERVER에서도  충분히 지원되는 쿼리 입니다.

'DECODE' 를 'CASE WHEN' 으로

'(+)' 를 'LEFT JOIN' 구문 으로

'||' 를 '+' 로

변환해주면 될것 같네요.

dreamt님이 2004-07-22 23:15에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1449여러 필드에 있는 값들 중 가장 많이 사용된 값 순으로 찾기 [2]
헌터
2004-07-24
2899
1448클라이언트 네트워크 유틸로 백업... [1]
임신자
2004-07-23
2665
1447DB 이전할때 .... [1]
초보
2004-07-23
3050
1446이런 오라클 쿼리가 MS-SQL 에서 구현가능할까요? [1]
엄원탁
2004-07-22
3704
1445xp에 sql2000 스탠다드를 설치했는데.. 사용자의 로긴이..
박승규
2004-07-22
2796
1444오라클에서 MS SQL 로 디비를 바꿀때 주의할점
엄원탁
2004-07-22
2231
1443procedure 실행 에러 [1]
김민영
2004-07-22
2682
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다