Q&A

  • join을 했는데 계산필드가 null값때문에...
안녕하세요...

제가 아래 프로그램을 하다가 거의 익사직전입니다...

ms sql7.0 델파이4.0으로 마이다스를 응용하여 진행하고

있습니다..

저희 재고현황을 보게 하려고 하는데요..

먼저 기초재고TABLE과 입고TABLE을 합치고 그리고

출고TABLE을 뺀값을 사용자에게 보여주려 합니다.

먼저 기초재고TABLE을 재고TABLE에(모든레코드 삭제후) 복사한 후

입력받은 날짜로 입고TABLE을 검색하여 재고TABLE에 합쳤습니다

그리고 출고TABLE은 재고TABLE의 KEY값이 중복되기 때문에

뷰를 만들어(GROUP BY절을 이용 SUM(수량)) 놓았구요

그리고 재고TABLE과 출고TABLE을 뷰로 조인하였습니다

조인은 OUTER 를 썼기 때문에 재고TABLE중 출고TABLE에

없는 레코드는 NULL값으로 계산결과가 NULL값으로 나타납니다.



CREAT VIEW VJEGO (KEY필드,필드1,필드2,계산결과필드) AS

SELECT J.KEY필드,J.필드1, G, J.필드1-G.필드2

FROM 재고TABLE J LEFT OUTER 출고TABLE G

ON J.KEY필드=G.KEY필드



상기와 같을때 계산필드의 기초값이 O 이라면 계산이 될텐대요

방법좀 찾아주세요....

언제나 고마움을 느낍니다..

2  COMMENTS
  • Profile
    이진우 2000.02.10 07:28
    김종운 wrote:

    > 안녕하세요...

    > 제가 아래 프로그램을 하다가 거의 익사직전입니다...

    > ms sql7.0 델파이4.0으로 마이다스를 응용하여 진행하고

    > 있습니다..

    > 저희 재고현황을 보게 하려고 하는데요..

    > 먼저 기초재고TABLE과 입고TABLE을 합치고 그리고

    > 출고TABLE을 뺀값을 사용자에게 보여주려 합니다.

    > 먼저 기초재고TABLE을 재고TABLE에(모든레코드 삭제후) 복사한 후

    > 입력받은 날짜로 입고TABLE을 검색하여 재고TABLE에 합쳤습니다

    > 그리고 출고TABLE은 재고TABLE의 KEY값이 중복되기 때문에

    > 뷰를 만들어(GROUP BY절을 이용 SUM(수량)) 놓았구요

    > 그리고 재고TABLE과 출고TABLE을 뷰로 조인하였습니다

    > 조인은 OUTER 를 썼기 때문에 재고TABLE중 출고TABLE에

    > 없는 레코드는 NULL값으로 계산결과가 NULL값으로 나타납니다.

    >

    > CREAT VIEW VJEGO (KEY필드,필드1,필드2,계산결과필드) AS

    > SELECT J.KEY필드,J.필드1, G, J.필드1-G.필드2

    > FROM 재고TABLE J LEFT OUTER 출고TABLE G

    > ON J.KEY필드=G.KEY필드

    >

    > 상기와 같을때 계산필드의 기초값이 O 이라면 계산이 될텐대요

    > 방법좀 찾아주세요....

    > 언제나 고마움을 느낍니다..





    김종운님 보세요!!



    MS-SQL 에서는 ISNULL을 사용하시면 됩니다.



    ISNULL(표현식, 널일때 값)



    > SELECT J.KEY필드, J.필드1, G, J.필드1- ISNULL(G.필드2, 0)

    > FROM 재고TABLE J LEFT OUTER 출고TABLE G

    > ON J.KEY필드=G.KEY필드



    이런식으로 사용하시면 될 것 같네요



    그럼 즐거운 코딩되세요!!

  • Profile
    kingdol 2000.02.09 21:17
    김종운 wrote:

    > 안녕하세요...

    > 제가 아래 프로그램을 하다가 거의 익사직전입니다...

    > ms sql7.0 델파이4.0으로 마이다스를 응용하여 진행하고

    > 있습니다..

    > 저희 재고현황을 보게 하려고 하는데요..

    > 먼저 기초재고TABLE과 입고TABLE을 합치고 그리고

    > 출고TABLE을 뺀값을 사용자에게 보여주려 합니다.

    > 먼저 기초재고TABLE을 재고TABLE에(모든레코드 삭제후) 복사한 후

    > 입력받은 날짜로 입고TABLE을 검색하여 재고TABLE에 합쳤습니다

    > 그리고 출고TABLE은 재고TABLE의 KEY값이 중복되기 때문에

    > 뷰를 만들어(GROUP BY절을 이용 SUM(수량)) 놓았구요

    > 그리고 재고TABLE과 출고TABLE을 뷰로 조인하였습니다

    > 조인은 OUTER 를 썼기 때문에 재고TABLE중 출고TABLE에

    > 없는 레코드는 NULL값으로 계산결과가 NULL값으로 나타납니다.

    >

    > CREAT VIEW VJEGO (KEY필드,필드1,필드2,계산결과필드) AS

    > SELECT J.KEY필드,J.필드1, G, J.필드1-G.필드2

    > FROM 재고TABLE J LEFT OUTER 출고TABLE G

    > ON J.KEY필드=G.KEY필드

    >

    > 상기와 같을때 계산필드의 기초값이 O 이라면 계산이 될텐대요

    > 방법좀 찾아주세요....

    > 언제나 고마움을 느낍니다..





    도움이 될진 모르겠지만...

    ms sql은 잘 모르겠구여... oracle에서는 NVL 이라는 sql 함수가 존재합니다...

    널값을 다른값으로 치환하기 위한 함수죠..

    예를들면...



    select a,b,NVL(c,0)

    from kkk;

    만일 위와갔다고 했을때 c 필드의 값이 null인경우 그값이 0 으로 치환되어 조회되죠..

    위에서 말한 그문제는 계산필드 계산시에 nul값을 체크하여 0 또는 필요한 값으로

    치환하여 계산하면 될것 같은데요...



    모쪼록 도움이 되길...