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 5812 게시물 읽기
No. 5812
mssql 조건별 카운트후 합친값뺀 카운트...
작성자
송철승
작성일
2010-12-16 14:26ⓒ
2010-12-16 16:58ⓜ
조회수
6,856

긴 쿼리중에 이부분이 문제인 부분만 때왔습니다.ㅜ

SELECT group_type, count(*) as quantity_basic, 0 as quantity_stretched
    FROM
    (
SELECT TOP (500) *  FROM
    (
      SELECT  i.group_type,h.start_t
      FROM tbl_serial_history h, tbl_selling s, tbl_incentive i
      WHERE h.sell_no=s.sell_no AND s.model_num = i.model_num
      AND h.start_t >= '2010-01-01' AND h.sell_state='Y' AND s.sell_type='ST'
      AND h.start_t < '2010-12-31'
      AND s.buyer_no IN(select user_no from tbl_user where mod_no=81)
      AND (s.seller_no = i.dist_no1 or s.seller_no = i.dist_no2)
    
    )x order by start_t
   ) a
   group by a.group_type

설명:
 - 1월부터 12월까지 거래내역을 저 top의 갯수만큼 불러 오는겁니다. 여기에는 500이라고 쓰여있죠..
거래내역은 만약 A제품이 10개가 1월1일에 거래가 됐으면

거래번호 |제품명| 시리얼번호 | 거래일 | 타입
     1             A             a0001        01-01     ST
     1             A             a0002        01-01     ST
     1             A             a0003        01-01     ST <-- 판매
     ..                ....                     ...           ..         ...
--------------------------------------------------    
     3             A              c0001       01-02    RN <-- 반품
------------------------------------------------------
 이런식으로 이렇게 하나의 거래번호에 각각다른 시리얼 번호가 10개가 등록되면 1월 1일에
어떤 제품이 10개가 거래된것입니다.

이렇게 해서 1월부터 12월까지 거래된거중에 500개를 불러오는겁니다.

자 이제 문제는...ㅜ

문제점 :

이제 500개의 거래내역이 불러와 지는데...ㅜ

저기 빨간색 표시의 sell_type="ST" 이거 판매한것이거든요.
그리고 sell_type="RN" 이게 반품했다는 것인데..

위에보시면 ST한거만 뽑아 내잖아요.

이게 반품을 뺀 값이 나와야 하는데 아..이게 어떤식으로 해야할지...

이게 1월부터 순차적으로 거래내역을 뽑는건데..

만약 top(500)까지 반품없이 ST만 했다면 문제될게 없는데..

만약 1월13일까지 ST한게 500개인데 1월4일날 반품한 카운트가 10개가 있다면..
이 10개를 빼고 1월 14일날 ST 10개의 카운트가 나와야 하는 이런 상황인것입니다.!

 아 이게 글로 표현할려니 설명을 잘 못하겠네요..ㅜ

엉엉..저의 미천한 실력이 점점 바닥을 드러내고 있는 현실이 슬픕니다.ㅜ
 

[Top]
No.
제목
작성자
작성일
조회
5815안녕하세요. Mssql을 사용하는데 golden처럼 사용 가능한 툴 없나요?
최명식
2010-12-23
6592
5814오라클 테이블 정보가져오는 쿼리 를 mssql로 [1]
kali
2010-12-22
7466
5813포트 1433 연결할수 없다고 하네요..
정영배
2010-12-21
6729
5812mssql 조건별 카운트후 합친값뺀 카운트...
송철승
2010-12-16
6856
5811데드락인것 같은데 PID가 -2 로 나오는데 뭘까요 ? [1]
김재윤
2010-12-16
6639
5810'0.xxxxx....xxe' 형태의 문자로 되어 있는 것을 double 형태의 부동 소수점 변환?
새로운방법
2010-12-12
6496
5809특정 레코드만 수정이 안됩니다. [1]
최광훈
2010-12-11
6082
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다