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
운영게시판
최근게시물
Sybase Q&A 3987 게시물 읽기
No. 3987
sybase union all 쿼리 좀 봐주세요..
작성자
최선기(tomkidd)
작성일
2010-01-25 11:08
조회수
9,668

안녕하세요..  sybase DB를 사용하고 있는데.. 이상해서요.

 

아래와 같이 만들고 temp Table 만들어서 쿼리한값 집어넣고 그 Temp 테이블 조회하는 스크립트입니다.

 

 

Select 절

 union all

select 절 구분입니다.  일단 요 union all 결과는 모두 맞게 나옵니다.

               itemc_cd  / tot_amt /    year02

결과값 1 row => 1118    ,   0 ,          0

       2 row => 1118    ,   0 ,          0

요렇게 나옵니다.

헌데 이걸 Insert Into #Test_temp 하면  year_02의 값이 엉뚱하게 나옵니다.

       1 row => 1118, 0, -4580.7098286534

 

도대체 왜 -4580.7098286534 란 값이 나오는지 종잡을 수가 없어여.. 그것도  insert 하면 말입니다.

고수님들 부탁 좀 드릴께요.. 며칠동안 골치앓고 있습니다.       

혹시 버젼에 따라 못쓸수도 있나요?

 

 
DROP TABLE #Test_temp
 Create Table #Test_temp
    (
     item_cd       char(04)  null,
     tot_amt       decimal(25,10) null,
     year_02            decimal(15,11)null

    )         
    
    
   

Insert Into #Test_temp  --> 이부분에서 값이 이상하게 나옴.
 Select z.a01,
        Round(Sum(z.a02) * 0.2209119813,10),
        Round(Sum(z.a04) * 0.2209119813,10)  -> 이부분을   Round(Sum(1) * 0.2209119813,10) 을 해봐도  0.2209119813이 아닌 전혀다른 Data가 나옵니다.
   From (
  
   Select '1118'                                   a01,
          0                                     a02, 
          round(isnull(Sum(Case when year = convert(varchar,2003 +  1) then ctr_amt else 0 end),0) / 1000,10) a04
     From u_a_d a,
          u_a_act c
         where exists ( select 1
                       from #temp_123 b
                      Where a.jigu_no = jigu_no
             and a.cnt     = cnt
             and a.an_no   = an_no)       
      And a.gbn     = '4' -- 선급
      And a.jigu_no = c.jigu_no
      And a.cnt     = c.cnt
      And a.an_no   = c.an_no
      And a.gbn     = c.gbn
      And a.acnt_cd = c.acnt_cd
     
   Union ALL
   
   Select '1118'                              a01,
             0                               a02,
          round(isnull(Sum(Case when year = convert(varchar,2003 +1) then -1 * ctr_amt else 0 end),0) / 00,10) a04
     From  u_a_d a,
         u_a_act c
    where exists ( select 1
                       from #temp_123 b
                      Where a.jigu_no = jigu_no
             and a.cnt     = cnt
             and a.an_no   = an_no)
      And a.gbn     = '2'
      And a.jigu_no = c.jigu_no
      And a.cnt     = c.cnt
      And a.an_no   = c.an_no
      And a.gbn     = c.gbn
      And a.acnt_cd = c.acnt_cd ) z
 Group By z.a01

 

SELECT * FROM #Test_temp

 

 


DELETE FROM #Test_temp

 

[Top]
No.
제목
작성자
작성일
조회
3990sybase iq LOAD 옵션중.. [1]
jip
2010-01-29
9917
3989sybase 추출 시 옵션 질문입니다.. [4]
2010-01-28
8309
3988order by 사용시 결과 내용이 틀립니다.
박상진
2010-01-26
7255
3987sybase union all 쿼리 좀 봐주세요..
최선기
2010-01-25
9668
3986Service Error [5]
신승현
2010-01-10
7517
3985sybase db offline방법좀 알려주세요~ [1]
홍종서
2010-01-06
7297
3984쿼리좀 봐주셍.. [2]
ASE
2009-12-31
7384
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다