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
운영게시판
최근게시물
MySQL Q&A 27432 게시물 읽기
No. 27432
하나의 select문에서 전체 count와 조건에 맞는 count를 다~ 구할 수있나요??
작성자
쪼인
작성일
2008-03-04 00:11
조회수
2,972

*** company 테이블***

  no   |        name       
-----------------------------------
   1   |   베스킨라벤스
   2   |   롯데리아
   3   |   파리바게트
   4   |   뜨레주르
   5   |   신라명과
   6   |   버거킹
   7   |   맥도날드


*** card 테이블***

  no   |        jehu          |    type      |    point
----------------------------------------------
   1   |   베스킨라벤스    |   신청       |        0
   2   |   베스킨라벤스    |   발급       |     150
   3   |   베스킨라벤스    |   발급       |     110
   4   |   롯데리아          |   신청       |         0
   5   |   롯데리아          |   발급       |       70
   6   |   롯데리아          |   발급       |       30
   7   |   베스킨라벤스    |   발급안됨 |         0
   8   |   파리바게트       |   발급       |     500 
   9   |   파리바게트       |   신청       |        0
   10 |   파리바게트       |   신청       |        0

DB에 값은 위와 같이 들어가 있습니다.


SELECT C1.name, count( C2.no ) FROM company AS C1  left join  card AS C2  on  C1.name=C2.jehu GROUP BY C1.name;
라고 쿼리문을 쓰면 아래와 같이  나오는데요.
     ---------------------------
          제휴사명        |  총건수 
     ---------------------------
        베스킨라벤스    |      4
        롯데리아          |      3
        파리바게트       |      3
        뜨레주르          |      0
        신라명과          |      0
        버거킹             |      0
        맥도날드          |      0

 

제가 원하는건
     -------------------------------------------------------
          제휴사명        |  총건수  |    발급수  |    발급포인트
     -------------------------------------------------------
        베스킨라벤스    |      4     |       2       |        260
        롯데리아          |      3     |       2       |        100
        파리바게트       |      3     |       1       |        500
        뜨레주르          |      0     |       0       |            0
        신라명과          |      0     |       0       |            0
        버거킹             |      0     |       0       |            0
        맥도날드          |      0     |       0       |            0
이렇게 나오는겁니다.


각각의 제휴사별로 총 몇건이 발생했고 그 중 발급된 건은 몇건인지 뿌려주려면
쿼리문을 어떻게 써야되나요??

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

Select 에 조건을 줘서 합을 구하면 됩니다.


Sum( if(c2.type="발급", 1, 0) ) cardCount, 포인트는 그냥 Sum(c2.point)


SELECT C1.name, count( C2.no ), Sum( if(c2.type="발급", 1, 0) ) cardCount, Sum(c2.point) FROM company AS C1  left join  card AS C2  on  C1.name=C2.jehu GROUP BY C1.name;


테스트 안했으니 참고하세요.

정왕균(하얀바다)님이 2008-03-09 09:11에 작성한 댓글입니다.
이 댓글은 2008-03-09 09:12에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
27435txt 파일을 load data infile로 DB에 넣으려고 하는데. [1]
바위풀
2008-03-04
3525
27434c#프로그램을 리눅스 mysql과 연동은 했는데요.....;;
유재훈
2008-03-04
3012
27433디비서버가 버벅거려요.. [1]
통통이
2008-03-04
3208
27432하나의 select문에서 전체 count와 조건에 맞는 count를 다~ 구할 수있나요?? [1]
쪼인
2008-03-04
2972
27430grant로 권한을 주려고 하는데 1045 에러가 나요. [4]
바위풀
2008-03-03
2978
27429c#으로 짠 db프로그램을 리눅스 mysql과 연결해야 합니다.... [1]
유재훈
2008-03-03
2646
27428join한 테이블의 필드값을 검색(like)하기? [1]
신기해
2008-03-02
2987
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다