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 5714 게시물 읽기
No. 5714
조건문을 작성하는데 어려움이 많네요 조언부탁드립니다.
작성자
정재원(haru0)
작성일
2010-07-28 10:52
조회수
12,512

DECLARE @memname varchar(50),
  @tagno varchar(50),
  @orgname varchar(50),
  @wdate1 char(12),
  @wdate2 char(12)

 
SET @orgname = 'null'   --학교이름( 
SET @tagno = 'L01538678'  --학생태그번호
SET @memname = '김효진'   --학생이름

SET @wdate1 = '20100701'  --시작시간
SET @wdate2 = '20100731'  --끝나는시간  
 

SELECT C.ORGNAME,A.MEMBERID,A.MEMNAME,B.TAGNO,A.USERID,D.NAME,A.DESCRIPT,A.WDATE
 FROM dbo.TB_CONSULT_HIST A
 JOIN ANYCARE.dbo.TB_MEMBER B
  ON A.MEMBERID = B.MEMBERID
 JOIN ANYCARE.dbo.TB_ORGAN C
  ON LEFT(A.MEMBERID,5) + '000' = C.ORGMEM
 JOIN ANYCARE.dbo.TB_BRANCH D
  ON A.USERID = D.BRMEM     
  WHERE  A.MEMNAME = @memname   ,    B.TAGNO = @tagno    ,    LEFT(C.ORGNAME,2) = @orgname
      AND CONVERT(CHAR(8),A.WDATE,112) between @wdate1 AND @wdate2
 ORDER BY CONVERT(CHAR(8),A.WDATE,112) DESC

위의 WHERE절에 있는부분을 조건으로해서

변수값이 MEMNAME 이 NULL이고 TAGONO만 값이 들어가고 ORGNAME도 널이면

TAGONO만 검색이되야하고.

MEMNAME + TAGNO 넣고 ORGNAME 에 NULL을 주면

두개의 쿼리를 합쳐서 나오게되야하는데 어렵네요 도움부탁드립니다

 

 

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

에구  Oracle는 고수분들이 쿼리 질문도 잘 답변해 주시는데

MS SQL은 답변해 주시는분들이 별로 없는듯 하네요 그래서 초보인 제가...

WHERE  A.MEMNAME LIKE @memname +'%'

      AND B.TAGNO LIKE @tagno + '%'

      AND  C.ORGNAME,2 LIKE @orgname + '%'

정재원님 의도가 맞는지 모르겠지만..

예를 들어 김효진만 입력하면 학생이름이 김효진이 나오면 되고

이름이 김효진이면서 태그가 L01538678 이면  학생이름은 김효진이면서 학생태그가 L01538678인 사람만 나옵니다 당연 값이 없는곳(ORGNAME)은 전체가 검색이 되구요..

 

참고로 SET @orgname = 'null'  이라고 하시면 "null"이라는 문자가 검색이 되니 SET @orgname = '' 이렇게 하시는게..

 

 

착한넘(agoodman99)님이 2010-07-28 12:23에 작성한 댓글입니다.
이 댓글은 2010-07-28 12:24에 마지막으로 수정되었습니다.

답글달아주셔서 정말감사합니다

 

다만 써주신데로 해보았는데

 

메시지 4145, 수준 15, 상태 1, 줄 31
조건이 필요한 컨텍스트(위치 ',')에 부울이 아닌 유형의 식이 지정되었습니다.
 

가 나오네요 ㅠㅠ

정재원(haru0)님이 2010-07-28 15:23에 작성한 댓글입니다.

AND  C.ORGNAME,2 LIKE @orgname + '%'

복사해서 수정하다보니 ,2 가 잘못들어갔네요

AND  C.ORGNAME LIKE @orgname + '%' 이렇게 해주면 될듯 싶네요

agoodman99님이 2010-07-28 15:45에 작성한 댓글입니다. Edit

정말 저에게 빛과 소금이 되어주신 분입니다 ㅠㅠ 감사드려요~

혹시 다시 글을 보신다면 polo447@hanmail.net 입니다

친하게 지내고 싶네요 뭐 부탁할려고 남긴거 아닙니다

정말 감사합니다 해결이 됬네요

정재원(haru0)님이 2010-07-28 16:48에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5717매번 죽을상으로 덤벼드네요ㅠㅠ 한번보시고 도움부탁드리겠습니다 [3]
정재원
2010-07-29
8150
5716중복된 데이터 시간을 처리해야하는데...여기서 멈처버렸네요 ㅠㅠ [1]
정재원
2010-07-28
6763
5715행 단위 인덱스넘버 부여 관련 질문드립니다 [1]
질문자
2010-07-28
6408
5714조건문을 작성하는데 어려움이 많네요 조언부탁드립니다. [4]
정재원
2010-07-28
12512
57132005에서 2008로 복제를 사용하려합니다. 문제없을까요?
지형준
2010-07-28
6465
5712윈도우 서버 2008 급질문 드립니다.. 봐주세요... [2]
와니
2010-07-26
6085
5711하나의 커넥션 정보로 다중의 database 연결하여 사용하는 법? [2]
이소현
2010-07-26
6230
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다