데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

SP where 문 조건이 변하는 쿼리

나는야 2020.02.24 17:17 Views : 622

안녕하세요


SP를 곧 당장 작성해야하는데  너무 머리가 아프군요 ㅠㅠ


초보자 도움 부탁드려요




테이블에는 DATE, ID, TYPE , COUNT값이 있습니다.


이중 저는


어떤 순간에는


SELECT  DATE, ID   FROM TABLE

WHERE DATE = 20190201   AND TYPE =1 AND COUNT <100

GROUP BY DATE, ID 



즉 특정 TYPE 의 카운트 조건인 ID들이 필요하고


어떤 순간에는


DATE = 20190201

TYPE=1 AND COUNT <40 이면서    

TYPE=5 AND COUNT > 5    이런식의 조건을 가진 모든 ID  



또 어떤 순간에는

DATE = 20190201

TYPE=1 AND COUNT <40 이면서  

TYPE=5 AND COUNT > 5    이면서

TYPE=10 AND COUNT  <= 6  인 조건을 가진 모든 ID 


가 필요한 SP를 만들려고 합니다.



어떤 방향으로 해야할지 좀 감이안와서 ㅠㅠ 


조언을 주실 수 있을까요?





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

제가 짠 sp 는 다음과 같은데용

좀 튜닝이 가능할지도요





  DEClARE @DATE INT
  DECLARE @nTYPE1 INT
  DEClARE @nCount1 INT
  DECLARE @nTYPE2 INT
  DEClARE @nCount2 INT
  DECLARE @nTYPE3 INT
  DEClARE @nCount3 INT
  DECLARE @nTYPE4 INT
  DEClARE @nCount4 INT
  DECLARE @nTYPE5 INT
  DEClARE @nCount5 INT

  SET @DATE = 20200222
  SET @nTYPE5 = ''
  SET @nCount5 = ''
  SET @nTYPE4 = ''
  SET @nCount4 = ''
  SET @nTYPE3 = 15
  SET @nCount3 = 1
  SET @nTYPE2 = 391
  SET @nCount2 = 1
  SET @nTYPE1 = 561
  SET @nCount1 = 3



  IF @nTYPE5 <> ''
  BEGIN
  SELECT  DATE, ID
  FROM [dbo].[table] WITH (NOLOCK)
  WHERE DATE=@DATE  AND TYPE=@nTYPE5 AND Count >= @nCount5 AND ID IN (SELECT ID FROM  [dbo].[table]
   WHERE DATE=@DATE  AND TYPE=@nTYPE4 AND Count >= @nCount4 AND ID IN (SELECT ID FROM  [dbo].[table]
    WHERE DATE=@DATE  AND TYPE=@nTYPE3 AND Count >= @nCount3 AND ID IN (SELECT ID FROM  [dbo].[table]
  WHERE DATE=@DATE  AND TYPE=@nTYPE2 AND Count >= @nCount2 AND ID IN (SELECT ID FROM  [dbo].[table]
   WHERE DATE=@DATE  AND TYPE=@nTYPE1 AND Count >= @nCount1 ))))
   GROUP BY DATE,ID
   END

   ELSE IF @nTYPE4 <> ''
     BEGIN
  SELECT  DATE, ID
  FROM [dbo].[table] WITH (NOLOCK)
  WHERE DATE=@DATE  AND TYPE=@nTYPE4 AND Count >= @nCount4 AND ID IN (SELECT ID FROM  [dbo].[table]
    WHERE DATE=@DATE  AND TYPE=@nTYPE3 AND Count >= @nCount3 AND ID IN (SELECT ID FROM  [dbo].[table]
  WHERE DATE=@DATE  AND TYPE=@nTYPE2 AND Count >= @nCount2 AND ID IN (SELECT ID FROM  [dbo].[table]
   WHERE DATE=@DATE  AND TYPE=@nTYPE1 AND Count >= @nCount1 )))
   GROUP BY DATE,ID
   END


   ELSE IF @nTYPE3 <> ''
     BEGIN
  SELECT  DATE, ID
  FROM [dbo].[table] WITH (NOLOCK)
    WHERE DATE=@DATE  AND TYPE=@nTYPE3 AND Count >= @nCount3 AND ID IN (SELECT ID FROM  [dbo].[table]
  WHERE DATE=@DATE  AND TYPE=@nTYPE2 AND Count >= @nCount2 AND ID IN (SELECT ID FROM  [dbo].[table]
   WHERE DATE=@DATE  AND TYPE=@nTYPE1 AND Count >= @nCount1 ))
   GROUP BY DATE,ID
   END

      ELSE IF @nTYPE2 <> ''
     BEGIN
  SELECT  DATE, ID
  FROM [dbo].[table] WITH (NOLOCK)
     WHERE DATE=@DATE  AND TYPE=@nTYPE2 AND Count >= @nCount2 AND ID IN (SELECT ID FROM  [dbo].[table]
   WHERE DATE=@DATE  AND TYPE=@nTYPE1 AND Count >= @nCount1 )
   GROUP BY DATE,ID
   END

ELSE 
     BEGIN
  SELECT  DATE, ID
  FROM [dbo].[table]WITH (NOLOCK)
       WHERE DATE=@DATE  AND TYPE=@nTYPE1 AND Count >= @nCount1
    GROUP BY DATE,ID
   END

   GO









No. Subject Author Date Views
10562 150만건 인서트에 대한 문의 LDF 파일 쓰기 속도 곰네 2020.03.28 715
10561 MSSql Read Write 분리 가능한가요? [1] Forenty 2020.03.26 664
10560 레코드를 여러번 반복 출력 하려고 합니다... [2] 삼미슈퍼스타 2020.03.25 590
10559 IDENTITY의 증가관련 질문 [2] 쏠남 2020.03.25 514
10558 LIKE절의 형태에 대한 질문입니다. bctr 2020.03.22 466
10557 고정된 숫자값을 insert할때마다 늘리고 싶습니다... [1] yotaggu 2020.03.20 512
10556 like 검색 속도관련 냥냥 2020.03.20 609
10555 (오라클) 여러개의 날짜 중 특정 날짜와 가장 가까운 날짜를 구할 수 있을까요? [1] 정보보안 2020.03.15 815
10554 쿼리 질문입니다. greenseed 2020.03.15 507
10553 select 쿼리 결과 속도를 높일수 있는 방법이 있을까요? [1] 냠냠11 2020.03.14 556
10552 프로파일러의 duration 문의 드립니다. [1] compius5 2020.03.13 532
10551 log파일 질문입니다. [2] 희망나라 2020.03.12 556
10550 두테이블간에 인서트 업데이트를 하려고 합니다. [1] 아싸라비아콜롬비아 2020.03.10 620
10549 오라클 쿼리 질문입니다. [1] 정보보안 2020.03.10 516
10548 SQL 백업스케줄러 실행시 나는야 2020.03.09 530
10547 sql agent 에 등록해둔 스케쥴 에러나더라도 강제로 실행할수있는방법은없나요? 쭈우니 2020.03.04 550
10546 매일 새로생성되는 DB에 권한을 부여하는방법 문의드립니다 쭈우니 2020.03.02 554
10545 데이타베이스 연결시 문제점 [2] 희망나라 2020.03.02 592
» SP where 문 조건이 변하는 쿼리 나는야 2020.02.24 622
10543 SQL Migration 작업 문의 [2] 이얌 2020.02.20 824





XE Login