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 1341 게시물 읽기
No. 1341
GROUP BY 에 대해서
작성자
로야
작성일
2004-05-21 11:32
조회수
7,361

mysql 은 별도의 설정 없이 group by 가 되는데

ms sql 에서는 group by 가 에러 메세지를 보여 줍니다.

Microsoft OLE DB Provider for SQL Server error '80040e14'

'member.join_time' 열이 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다.

/admin/member/statistic_day.asp, line 49

이런 메세지가 뜨구요

회원 가입한 사람중에서 통계를 내려고 하는데

잘 안되네요..

사용한 쿼리는

SQL = "SELECT convert(varchar(10),join_time,120) FROM member GROUP BY Year(join_time)"

입니다.

원래 쿼리는 저게 아니구요 저거만 해결 된다면 될거 같아서..

join_time 에는 getdate 형식으로 날짜 값이 입력되어 있구요..

혹시 월별 일별 통계를 내려면 sql구문을 어떻게 줘야하고.. 설정해줘야 할 값이 있다면 어떻게 해야되는지요..

Mysql 만 쓰다가 친구 부탁으로 수정해주기로 했는데 생각처럼 안되네요^^

그럼 좋은 하루되세요

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

음..

SQL = "SELECT DATENAME(yyyy, join_time)+DATENAME(mm, join_time) + DATENAME(dd,join_time),count(*)  FROM member  GROUP BY DATENAME(yyyy, join_time)+DATENAME(mm, join_time) + DATENAME(dd,join_time)"

일케 하니까 되기는 하는데 맞게 한건가요 ^^?

 

로야..님이 2004-05-21 11:39에 작성한 댓글입니다. Edit

[열이 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다.]

my sql은 어떨지 모르지만..(아마도 같은 거라는..)

위의 사항은 일반적인 dbms의 기본적인 규칙같은 것인데요..

 

SELECT convert(varchar(10),join_time,120)

FROM member

GROUP BY Year(join_time)

 

Year(join_time) vs join_time

 

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

join_time        Year(join_time)

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

2004-05-20     2004

2004-05-21     2004

2004-09-21     2004

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

완전히 다른 레벨이죠..

Year(join_time)으로 group by를 하셨다면..

join_time는 당근.. min, max등의 그룹함수를 사용해야 겠죠.

 

의도하시는 바를 정확히 알 수 없어서 더는 말씀을 못드리겠네요.

sql님이 2004-05-21 13:05에 작성한 댓글입니다. Edit

답변 감사 드립니다.

제가 처음 댓글에 써논 것과 같은 쿼리로 해당월의 일별 회원 가입자를

구했는데요. (해당월의 일별 GROUP BY )

 

원하고자 하는 결과 값은

 

join_time    |  count(*)

2004-05-01 |   12

2004-05-02 |   100

2004-05-03 |   154

2004-05-04 |   111

.

.

.

이것입니다

제가 댓글에 써논 쿼리로 구하기는 했는데 맞게 구한것인지 궁금합니다..

 

그리고 주민등록번호뒤에 7자리의 첫자리로 일별 남녀 회원가입 구성을 알아보려면 또 어떻게 해야되는것인지 ^^;

 

검색후 질문이 당연하겠지만 우선 질문 부터 하고 검색도 해보겠습니다 ^^

 

로야님이 2004-05-21 21:46에 작성한 댓글입니다. Edit

지금 보니까 첫 댓글을 같은 분이 쓰신 거 군요..

 

위와 같이 해도 되겠지만.. 좀더 간편하게 하자면..

 

SELECT Convert(char(10), join_time, 121),

             count(*) 

FROM member

GROUP BY Convert(char(10), join_time, 121)

 

마찬가지로 일별, 남녀수를 구한다면

 

SELECT Convert(char(10), join_time, 121),

             Substring(주민번호, 7, 1),

             count(*) 

FROM member

GROUP BY Convert(char(10), join_time, 121),

                 Substring(주민번호, 7, 1)

 

이렇게 하면 되겠죠..

 

group by를 사용한 문장에서 select절에 올 수 있는 것은..

group by 에 사용한 내용, 집계함수, 상수 등 입니다.

 

에러 메시지를 명심하시길..

[열이 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다.]

 

SQL님이 2004-05-21 22:25에 작성한 댓글입니다.
이 댓글은 2004-05-21 22:30에 마지막으로 수정되었습니다. Edit

좋은 정보 감사드립니다 ^^

 

늘 좋은 일만 가득하세요

로야님이 2004-05-22 18:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1344datetime에 null값으로 저장할려고 하는데...도와주세요 [2]
레오
2004-05-22
4679
1343MS-SQL과 Oracle 연동 관련 질문
사람
2004-05-21
6600
1342[질문]MYSQL설치했는데 실행이 안됩니다.T-T
윤세민
2004-05-21
2687
1341GROUP BY 에 대해서 [5]
로야
2004-05-21
7361
1340각 id에 해당하는 판매금액을 해당월로 산출할려하는데요 [1]
초보자
2004-05-21
3240
1339가장 많은 사람을 찾으려면..?(쿼리...) [1]
소병민
2004-05-20
2818
1338MSSQL과 자바로 기차예약 시스템을 작성하는데요..두 가지 질문입니다..
권곤
2004-05-20
3431
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다