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
운영게시판
최근게시물
MS-SQL Q&A 6698 게시물 읽기
No. 6698
조회 문의좀요..
작성자
초보입니다.(fightinggood)
작성일
2013-07-19 10:41
조회수
8,106

 안녕하세요..

쿼리 조회 문의좀 드리겠습니다.

테이블1

코드               명                  금액

                                              200

001             김밥천국          300

002          001234_콩         500

003          001235_밥         600

 

테이블2

코드              명             구분

001234        콩              Y

001235         밥             Y

001236        쌀             N

이런두개의 테이블이 있습니다.

1번테이블의 명을 가져와서 앞에6자리를 잘라서 테이블2의 코드와 비교후 테이블2의 데이터가 있으면

해당코드로 테이블1의 금액의 합을 구하는 쿼리 입니다.

테이블2와 비교 후 없거나 구분 값이 N인 경우 000000 으로 표기 한후 코드가 없는 금액의 합도 같이 구해야 합니다.

원하는 값은

코드                       금액

000000                500

001234                500

001235                600

이렇게 출력이 되야 합니다.

명에서 자리수 잘라와서 합을 구하는것은 하였는데 

데이터가 없는경우를 포함해서 할려고 하니 안되더라구요.

많은도움 부탁드리겠습니다.

수고하세요~!

이 글에 대한 댓글이 총 5건 있습니다.
WITH tblA( 코드, 명, 금액)
AS
(
SELECT '', N'', 200
UNION ALL SELECT '001', N'김밥천국', 300
UNION ALL SELECT '002', N'001234_콩', 500
UNION ALL SELECT '003', N'001235_밥', 600
)
, tblB( 코드, 명, 구분)
AS
(
SELECT N'001234', N'콩', 'Y'
UNION ALL SELECT N'001235', N'밥', 'Y'
UNION ALL SELECT N'001236', N'쌀', 'N'
)
SELECT ISNULL( tblB.코드, N'000000' ) AS 코드, SUM( tblA.금액 ) AS 금액
FROM tblA
LEFT JOIN tblB ON LEFT( tblA.명, 6 ) = tblB.코드
GROUP BY ISNULL( tblB.코드, N'000000' )
;
우욱님이 2013-07-19 11:27에 작성한 댓글입니다. Edit

 우욱님 감사합니다.

그런데 코드가 공백인것과

000000 인것을 합쳐서 같이 나와야 해서요.. 

초보입니다.(fightinggood)님이 2013-07-19 11:52에 작성한 댓글입니다.

윗 쿼리문 실행 결과는 다음과 같습니다.

코드 금액
000000 500
001234 500
001235 600
우욱님이 2013-07-19 11:55에 작성한 댓글입니다. Edit

 혹시 mssql2000 이면 다른 부분이 있나요.??

제가 2000 을 사용 중입니다..

감사합니다.

초보입니다님이 2013-07-19 13:17에 작성한 댓글입니다. Edit

아.... 추억의 2000.....

 

WITH 부분 없이 SELECT이하 부분만 실제 table에 맞춰서 실행하시면 될 듯 싶긴 한데.... 테스트 해볼 수 있는 환경이 없다보니..... 휴...

 

우욱님이 2013-07-19 13:38에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6701다음 oracle sql 을 ms-sql 에서는 어떻게 하나여 [1]
최종길
2013-07-24
7501
6700transaction log 축소의 효과? [1]
조중규
2013-07-22
8017
6699엑셀문서를 DB에 insert [1]
DBDBDB
2013-07-22
7971
6698조회 문의좀요.. [5]
초보입니다.
2013-07-19
8106
6697기존에 출제 되지 않은 문제를 가져오는 쿼리에 대한 문의 드립니다. [5]
채다현
2013-07-17
8568
6696프로시저 인자값 관련 문의 드립니다. [1]
세균장군
2013-07-16
8915
6695포트 문제 [1]
박해일
2013-07-12
7944
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다