Q&A

  • Query 에서 Sum 조건 주기
안녕하세요..

아래와 같은 필드로 구성이 된상태에서

Query 에서 Sum 으로 조건을 줄수 있는 방법을 알고 싶습니다.



Sname cDate Mony Chek

----------------------------------

최진실 | 1998-08-01 | 10,000 | 어음

최수종 | 1998-08-10 | 20,000 | 현금

신해철 | 1998-08-10 | 30,000 | 가계

최진실 | 1998-08-11 | 20,000 | 현금

김현정 | 1998-08-12 | 25,000 | 당좌

최수종 | 1998-08-13 | 30,000 | 당좌

심은하 | 1998-08-13 | 50,000 | 현금



위와 같은 데이타가 있을 때..

1998-08-01 부터 1998-08-13 일 까지 조회를 했다면.

아래와 같은 형태가 나오게 말이죠..



성명 어음 현금 가계 당좌

-------------------------------------------

최진실 10,000 | 20,000 | 0 | 0

최수종 0 | 20,000 | 0 | 30,000

신해철 0 | 0 | 30,000 | 0

김현정 0 | 0 | 0 | 25,000

심은하 0 | 50,000 | 0 | 0



아래와 같은 형태를 했더니.. 비슷하게는 나오는데..

세로로 나오더군요..



Select Sname,Chek,Sum(Mony) From Dbname

Where cDate>='1998-08-01' and cDate<='1998-08-13'

Group By Sname,Chek



계산 항목을 가로로 나오게 할수 없는지요??

위의 문법중에 Sum() 에 조건을 개별적으로 줄수 있다면 딱! 금상첨화인데

조건을 개별적으로 줄수 있는 방법이 없을까요??



그럼.. 미리 감사 드립니다.. ^^;;

1  COMMENTS
  • Profile
    하윤철 1999.05.19 03:22
    오기주 wrote:

    > 계산 항목을 가로로 나오게 할수 없는지요??

    > 조건을 개별적으로 줄수 있는 방법이 없을까요??

    >



    이런 경우는 DB에 따라 문법이 다릅니다.



    Select Sname,

    SQL 이라면

    어음 = sum(Case when Chek = '어음' then Mony else 0 end),

    현금 = sum(Case when Chek = '현금' then Mony else 0 end),

    당좌 = sum(Case when Chek = '당좌' then Mony else 0 end),

    가계 = sum(Case when Chek = '가계' then Mony else 0 end)

    Oracle 이라면

    sum(decode(Chek, '현금', Mony, 0)) 현금

    sum(decode(Chek, '어음', Mony, 0)) 어음

    sum(decode(Chek, '당좌', Mony, 0)) 당좌

    sum(decode(Chek, '가계', Mony, 0)) 가계

    From Dbname

    Where cDate between '1998-08-01' and '1998-08-13'

    Group By Sname



    그것도 아니면...



    Select a.Sname, b.현금, c.어음, d.가계, e.당좌

    From Dbname a,

    (select Sname, Sum(Mony) from Dbname where Chek = '현금'

    cDate between '1998-08-01' and '1998-08-13' Group By Sname) b,

    (select Sname, Sum(Mony) from Dbname where Chek = '어음'

    cDate between '1998-08-01' and '1998-08-13' Group By Sname) c,

    (select Sname, Sum(Mony) from Dbname where Chek = '가계'

    cDate between '1998-08-01' and '1998-08-13' Group By Sname) d,

    (select Sname, Sum(Mony) from Dbname where Chek = '당좌'

    cDate between '1998-08-01' and '1998-08-13' Group By Sname) e

    where

    (a.Sname = b.Sname)

    and (a.Sname = c.Sname)

    and (a.Sname = d.Sname)

    and (a.Sname = e.Sname)



    조건을 개별적으로 주는 가장 기본적인 방법은 아마 SubQuery가 아닐까합니다..

    • chbang
    • 1999.05.19 23:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      1999.05.20 00:33
      안녕하세요. 유수입니다. DBGrid는 기본적으로 다중 선택을 지원합니다. Ctrl 키를 누른 상태로, 마...
    • 박종길
    • 1999.05.19 22:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.19 22:27
      박종길 wrote: > 델파이로 만든 프로그램에서 > 시스템에 설정되어 있는 드라이브에 대하여 > 지정된 화...
    • 이정욱
      1999.05.19 22:33
      한델(http://www.delphi.co.kr)의 강의실에 가보세요. 인쇄에 대한 강좌가 있습니다. 그것을 참고하세요. ...
    • 이현정
    • 1999.05.19 20:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:32
      DB콘트롤을 사용하기보다 일반 TEdit을 사용하시면 간단히 해결되지 않을까요? TEdit을 사용하셔서 입력이...
    • 김지연
    • 1999.05.19 19:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:29
      아래의 문제가 아닌것 같네요. 분명 끝나면서 하는일에 생성되지 않은 콘트롤을 사용하려고 하는것 같습니...
    • 안치봉
      1999.05.19 20:36
      김지연 wrote: > 데이타를 구조화해서 자료를 집어넣을려고 아래와 같이 코딩을 했습니다.. > > > ty...
    • sun
    • 1999.05.19 18:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.20 00:19
      김하정 wrote: > 안녕하세요... > 제가 어제 안치봉씨께 다시 소스를 보냈는데 > Q&A에 올리라는 걸 깜...
    • 안치봉
      1999.05.19 21:06
      김하정 wrote: > 안녕하세요... > 제가 어제 안치봉씨께 다시 소스를 보냈는데 > Q&A에 올리라는 걸 깜...
    • 북해
    • 1999.05.19 18:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 지종진
    • 1999.05.19 16:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:26
      아무래도 BDE의 버전 문제 같군요. BDE만 최신으로 설치해 보세요. BDE는 개발환경과 사용환경이 같은 버...
    • 하윤철
      1999.05.19 17:33
      강지영 wrote: > loop로 처리하였을때 Update Failed라는 에러가 발생합니다. > > with Query1 do > b...
    • 1999.05.19 10:06
      강지영 wrote: > 안녕하세요. 또 지영이 입니다. > Tdatabase의 ApplyUpdates메소드를 사용하다가 문제에...
    • 강지영
      1999.05.19 15:23
      한 wrote: > 강지영 wrote: > > 안녕하세요. 또 지영이 입니다. > > Tdatabase의 ApplyUpdates메소드를 ...
    • 1999.05.20 01:49
      강지영 wrote: > 한 wrote: > > 강지영 wrote: > > > 안녕하세요. 또 지영이 입니다. > > > Tdatabase...
    • 김영주
    • 1999.05.19 04:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.19 21:15
      김영주 wrote: > 계속 Screen Saver에 대한 질문이군요. > > explorer에서 보면 '화면보호기 연결프...
    • 김영주
      1999.05.21 18:53
      Hi. > 이 게시판에서 ShellExecute 나 WinExe 로 검색을 해보시기 바랍니다. > 아니면 Win32 API 도...
    • 강경중
    • 1999.05.19 04:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 04:39
      Label은 죽어도 포커스를 가지지 못합니다. 강경중 wrote: > 도와 주세요 > 폼의 여러 콤포넌트 중 실...
    • 강경중
    • 1999.05.19 03:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 04:01
      저장을 하셔야 합니다. ComboBox1.Items.SaveToFile 로 저장하시고 시작될때는 ComboBox1.Items.Loa...
    • 신규찬
    • 1999.05.19 02:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 전철호
      1999.05.19 19:53
      신규찬 wrote: > maskedit에서 한글을 입력하면 에러가 발생합니다. > 어떻게 처리하면 되는지 아시는분 ...
    • 오기주
    • 1999.05.19 02:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.19 03:22
      오기주 wrote: > 계산 항목을 가로로 나오게 할수 없는지요?? > 조건을 개별적으로 줄수 있는 방법이 없...