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 6924 게시물 읽기
No. 6924
일주일간 매일 합을 구해야 하는데요...
작성자
정지현(종이컵네개)
작성일
2015-11-03 19:55
조회수
2,658

7일간의 판매수량과 판매금액을 구해야 하는데 잘 안 돼서 도움을 청해봅니다.

엑셀 vba 에서 ado 참조해서 사용중입니다.

지금 구성돼 있는 표가

월욜 합, 월욜 금액합, 화욜 합, 화욜 금액합................................ 이런 식으로 돼 있어요.

그래서 

"select sum(수량), sum(금액)

    , (select sum(수량), sum(금액) from [sht$] where 판매일=" & 날짜+1)

    , (select sum(수량), sum(금액) from [sht$] where 판매일=" & 날짜+2)

.

.

.

 

from [sht$]

where 판매일=" & 날짜

 

이렇게 하는데 결국 문자수가 넘어서 못 하고 있습니다.

게다가 서브쿼리에서는 다중컬럼이 안 되더라구요.

 

for 문으로 날짜를 1씩 추가해 가면서 레코드셋을 7번 열었다 닫았다도 해봤는데

느리기도 하고 뭔가 잘못하고 있는 것 같아서요.

무슨 방법이 없을까요.

 

 

 

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

서브쿼리에서는 당연히 컬럼 1개밖에 안됩니다 -_-;;;

 

정상적인 쿼리내에 있는 서브쿼리(컬럼) 을 가지고 오는 역할인데

그게 멀티로 될리가;;;;

쿼리를 요리 바꾸고 해보세요

 

"select

              수량1일 = sum(수량)

            , 금액1일 = sum(금액)

            ,수량2일 =  (select sum(수량) from [sht$] where 판매일=" & 날짜+1)

            ,금액2일 = (select sum(금액) from [sht$] where 판매일=" & 날짜+1)

            ,수량3일 =  (select sum(수량) from [sht$] where 판매일=" & 날짜+2)

            ,금액3일 = (select sum(금액) from [sht$] where 판매일=" & 날짜+2)

.

.

.

 

from [sht$]

where 판매일=" & 날짜

최한영(terry0515)님이 2015-11-04 11:53에 작성한 댓글입니다.

SELECT SUM(CASE dt - v_dt WHEN 0 THEN cnt END) cnt_mon
     , SUM(CASE dt - v_dt WHEN 0 THEN amt END) amt_mon
     , SUM(CASE dt - v_dt WHEN 1 THEN cnt END) cnt_tue
     , SUM(CASE dt - v_dt WHEN 1 THEN amt END) amt_tue
     , SUM(CASE dt - v_dt WHEN 2 THEN cnt END) cnt_wed
     , SUM(CASE dt - v_dt WHEN 2 THEN amt END) amt_wed
     , SUM(CASE dt - v_dt WHEN 3 THEN cnt END) cnt_thu
     , SUM(CASE dt - v_dt WHEN 3 THEN amt END) amt_thu
     , SUM(CASE dt - v_dt WHEN 4 THEN cnt END) cnt_fri
     , SUM(CASE dt - v_dt WHEN 4 THEN amt END) amt_fri
     , SUM(CASE dt - v_dt WHEN 5 THEN cnt END) cnt_sat
     , SUM(CASE dt - v_dt WHEN 5 THEN amt END) amt_sat
     , SUM(CASE dt - v_dt WHEN 6 THEN cnt END) cnt_sun
     , SUM(CASE dt - v_dt WHEN 6 THEN amt END) amt_sun
  FROM t
     , (SELECT '2015-11-02' v_dt) a
 WHERE dt BETWEEN v_dt AND DATEADD(DAY, 6, v_dt)
;

마농(manon94)님이 2015-11-04 17:43에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6929쿼리문 문의 드립니다 [1]
축구소년
2015-11-12
2432
6927웹에서 프로시저 실행하면 시간초과. [2]
조성배
2015-11-09
2410
6926일자별 통계쿼리
dks 안순형
2015-11-06
2324
6924일주일간 매일 합을 구해야 하는데요... [2]
정지현
2015-11-03
2658
6923update 에러
nekku
2015-10-14
2452
6922select top newid 관련 질문입니다. [1]
코우지
2015-10-12
2591
6921% 100 은 MSSQL2000 에서 지원안되나요? [1]
김우성
2015-10-03
3157
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.073초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다