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 4091 게시물 읽기
No. 4091
프로시져 에서 like 문의 드립니다.
작성자
궁금이
작성일
2008-03-04 16:45
조회수
4,081
db에 들어가있는 값 200803040000001



-- drop proc sp_maxseq
create proc sp_maxseq
   @table_nm  varchar(15),
   @column_nm varchar(30)

as
begin
    declare @check_cnt int,
            @today_ymd char(9),
            @today_hms varchar(6),
            @return_seq varchar(15)

    -- 오늘날짜 구하기
    select @today_ymd = convert(char(8),getdate(),112)
    -- 현재시간 구하기
    select @today_hms = replace(convert(varchar,getdate(),8),':',null)

    select @today_ymd = rtrim(@today_ymd)+ '%'

    if 'tb_campcust' = @table_nm
        select @check_cnt = count(*)
          from tb_campcust
         where substring(@column_nm,1,8) like @today_ymd
    else if 'tb_campcust_tmp' = @table_nm
        select @check_cnt = count(*)
          from tb_campcust_tmp
         where substring(@column_nm,1,8) like @today_ymd
    else if 'tb_agscript' = @table_nm
        select @check_cnt = count(*)
          from tb_agscript
         where substring(@column_nm,1,8) like @today_ymd
    else
        goto err_rtn

    if @check_cnt < 1
        select @return_seq = @today_ymd + '0000001'
    else
        select @return_seq = @today_ymd + right('000000'+ltrim(str(isnull(convert(int,max(substring(@column_nm,9,7))),0)+1)),7)
end

select @return_seq as return_seq

return

err_rtn:
    select 'X' as return_seq

return




테이블 네임 비교쪽에 있는 where 절을 없애면 카운트가 되는데 like 문만 있으면 안됩니다.. 여기저기 찾아보다가 너무 급해서 질문 올립니다.

@check_cnt 에 계속 0 만 나옵니다. 뭐가 잘못된걸까요..ㅠㅠ.

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

좀더 좋은 쿼리가 있을 법한데요. 

원하는 형태는 
where substring(@column_nm,1,8) like '%' + @today_ymd + '%'

이런 식이 아닐까 합니다.

.님이 2008-03-05 16:51에 작성한 댓글입니다. Edit

처음에 그렇게 했다가 안되서 변수에다가 넣어서 한거였는데


그게 더 좋은 방법이 없을까요..ㅠㅠ..


궁금이님이 2008-03-05 17:39에 작성한 댓글입니다. Edit

컬럼이름은 변수로 받아 처리하실수 없습니다.
동적쿼리로 구현되어야 될듯 하네요~

최석준(beatchoi)님이 2008-03-05 18:41에 작성한 댓글입니다.

동적쿼리로... 동적쿼리를 배워야겠네요..^^;;

최석준님 답변 감사합니다~ ^^

궁금이님이 2008-03-06 09:20에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4097프로시저 실행시 에러 발생했을 때 줄번호 확인하는 방법이요. [1]
뾰로롱~
2008-03-06
4897
4096MySQL과 연결된서버 사용시 데이터 누락이 됩니다. [1]
이기성
2008-03-06
4983
4095[문외한] Window Server2003에서 사용하는 데이터 베이스 프로그램속도 저하
신현근
2008-03-06
3669
4091프로시져 에서 like 문의 드립니다. [4]
궁금이
2008-03-04
4081
4090DB 쿼리 문의 드립니다.
허문갑
2008-03-04
3804
4088딕셔너리(?)테이블 생성 [5]
2008-03-03
4086
4087유저별로 데이타베이스 분리 [1]
김정훈
2008-03-03
3799
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다