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
운영게시판
최근게시물
Informix Q&A 2529 게시물 읽기
No. 2529
임의값은 원하는값으로 정렬을 하고 싶습니다.도움을 부탁드립니다.
작성자
친구사이(krpower)
작성일
2008-09-04 21:03
조회수
5,878

인포믹스를 처음으로 접하고 열심히 하고 있습니다.
기본에 MSSQL에서 조금의 차이점으로 지금까지 별내용없이 잘 운영을 해오다가
코드의 연관되는 코드에 적용하는것에서 일주일이 넘게 고생을 하고 있습니다.
고스님들의 많은 의견을 부탁드립니다.

아래의 소스는 실제로 돌아가는 소스에서 조금 편집을 한것입니다.


==================== 소스코드 Start ==============================
codeCheck = "211" '연관되는 코드 010, 231, 112

if codeCheck = "211" then
 unionKey = "1"
end if

Sql = " SELECT DISTINCT D.field1 AS fieldName,B.field2,B.field3, COUNT(*) AS CNT, B.field4, B.field5, C.field6, A.field7, "
Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
Sql = Sql & " FROM table1 A, table2 B, table3 C, table4 D "
Sql = Sql & " WHERE (A.afield1 = 'N')"
Sql = Sql & " AND (A.afield1 = 'N')"
Sql = Sql & " AND (A.afield2 = B.bfield2)"
Sql = Sql & " AND (A.afieldCode = '211')"
Sql = Sql & " AND (A.afieldCode = C.cfieldCode) "
Sql = Sql & " AND (B.bfield3 = D.dfield3) "
Sql = Sql & " GROUP BY D.field1,B.field2,B.field3, B.field4, B.field5, C.field6, A.field7, "
Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
Sql = Sql & " ORDER BY A.afieldCode, D.field1, B.field2 "

IF (unionKey = "1") and codeCheck = "211" THEN
    Sql = Sql & " union all"
    Sql = " SELECT DISTINCT D.field1 AS fieldName,B.field2,B.field3, COUNT(*) AS CNT, B.field4, B.field5, C.field6, A.field7, "
    Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
    Sql = Sql & " FROM table1 A, table2 B, table3 C, table4 D "
    Sql = Sql & " WHERE (A.afield1 = 'N')"
    Sql = Sql & " AND (A.afield1 = 'N')"
    Sql = Sql & " AND (A.afield2 = B.bfield2)"
    Sql = Sql & " AND (A.afieldCode = '010')"
    Sql = Sql & " AND (A.afieldCode = C.cfieldCode) "
    Sql = Sql & " AND (B.bfield3 = D.dfield3) "
    Sql = Sql & " GROUP BY D.field1,B.field2,B.field3, B.field4, B.field5, C.field6, A.field7, "
    Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
   Sql = Sql & " ORDER BY A.afieldCode, D.field1, B.field2 "

 Sql = Sql & " union all"
    Sql = " SELECT DISTINCT D.field1 AS fieldName,B.field2,B.field3, COUNT(*) AS CNT, B.field4, B.field5, C.field6, A.field7, "
    Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
    Sql = Sql & " FROM table1 A, table2 B, table3 C, table4 D "
    Sql = Sql & " WHERE (A.afield1 = 'N')"
    Sql = Sql & " AND (A.afield1 = 'N')"
    Sql = Sql & " AND (A.afield2 = B.bfield2)"
    Sql = Sql & " AND (A.afieldCode = '231')"
    Sql = Sql & " AND (A.afieldCode = C.cfieldCode) "
    Sql = Sql & " AND (B.bfield3 = D.dfield3) "
    Sql = Sql & " GROUP BY D.field1,B.field2,B.field3, B.field4, B.field5, C.field6, A.field7, "
    Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
   Sql = Sql & " ORDER BY A.afieldCode, D.field1, B.field2 "

 Sql = Sql & " union all"
    Sql = " SELECT DISTINCT D.field1 AS fieldName,B.field2,B.field3, COUNT(*) AS CNT, B.field4, B.field5, C.field6, A.field7, "
    Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
    Sql = Sql & " FROM table1 A, table2 B, table3 C, table4 D "
    Sql = Sql & " WHERE (A.afield1 = 'N')"
    Sql = Sql & " AND (A.afield1 = 'N')"
    Sql = Sql & " AND (A.afield2 = B.bfield2)"
    Sql = Sql & " AND (A.afieldCode = '112')"
    Sql = Sql & " AND (A.afieldCode = C.cfieldCode) "
    Sql = Sql & " AND (B.bfield3 = D.dfield3) "
    Sql = Sql & " GROUP BY D.field1,B.field2,B.field3, B.field4, B.field5, C.field6, A.field7, "
    Sql = Sql & " C.field8 , C.field9, C.field10, C.field11, C.field12, C.field13, C.field14, C.field15"
   Sql = Sql & " ORDER BY A.afieldCode, D.field1, B.field2 "
end if
==================== 소스코드 End ==============================

위의 소스에서 보시는 봐와 같이 상단에서 쿼리로 가져오고 싶은 결과값은

 codeCheck(숨김)       실제물품명(뿌려줄내용)
    112      112  231  상품4
   

위의 값은 실제의 소스에서 출력되는 화면이고 아래는 원하는 값입니다.

-------------------------------------------------------
 codeCheck(숨김)      실제물품명(뿌려줄내용)
------------------------------------------------------- 
 211     211  010  상품1
 010  010  211  상품1
    231  231  112  상품3
    112     112  231  상품3
=======================================================
 
위와 같이 화면출력을 하고 싶습니다.
상단에서 쿼리를 돌리면 제일하단에 있는 union all의 (A.afieldCode = '112')의 쿼리만 실행이 되어 집니다.

인포믹스에서는 UNION 이나 UNION ALL이 인식을 못하는것인가요.
아니면 위의 쿼리가 문제인지...

고수님의 도움을 부탁드립니다.

메일도 기다리고 있습니다.
많은 부탁드립니다.

[Top]
No.
제목
작성자
작성일
조회
2532프로시저 수정하는데 도움 요청합니다!!
홍순범
2008-09-19
6465
2531테이블에 text 데이타형이 있습니다. esql 상태에서 값을 넣고 싶어요. [1]
이준식
2008-09-18
6299
2530dbexport 에러 질문입니다.
송기원
2008-09-11
6010
2529임의값은 원하는값으로 정렬을 하고 싶습니다.도움을 부탁드립니다.
친구사이
2008-09-04
5878
2528간단한 기초 질문입니다. 도와주세요. [1]
성상길
2008-08-28
8077
2527인포믹스 라이센스 관련..
이현재
2008-08-27
7836
2526테이블명과 건수, 사이즈 리스트를 구할 수 있는 방법을 문의드립니다. [2]
2008-08-26
7737
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다