2014-02-13 3 views
2

2 개 매개 변수를 허용하는 다음 저장 프로 시저를 만들었습니다. 테이블의 특정 열에 대해 매개 변수를 비교하는 방법이 있습니까? 기본적으로 사용자가 proj_num 및 newDate를 입력하고 테이블에있는 경우 일부 정보를 표시하려고합니다. 그것을 할 수저장 프로 시저의 매개 변수 비교

CREATE PROCEDURE empInfo2 
(
    @proj_num AS char(3) 
    ,@newDate AS smalldatetime 
) 
AS 
BEGIN 
/* Insert IF Statement here Intent is to display an ERROR message 
if the proj_num and/or date are not within the tables*/ 

IF (@proj_num <> /*Compare to PROJ_NUM column to see if number is in range*/ 
    OR /* I assume @newDate must be compared to ASSIGN_DATE?? */) 
    PRINT 'Invalid input. Enter correct Project Number and Date.' 


SELECT EMPLOYEE.EMP_NUM 
     ,EMPLOYEE.EMP_FNAME 
     ,EMPLOYEE.EMP_LNAME 
     ,PROJECT.PROJ_NUM 
     ,ASSIGNMENT.ASSIGN_DATE 

FROM ASSIGNMENT INNER JOIN EMPLOYEE ON 
     ASSIGNMENT.EMP_NUM = EMPLOYEE.EMP_NUM INNER JOIN 
     PROJECT ON ASSIGNMENT.PROJ_NUM = PROJECT.PROJ_NUM 

WHERE PROJECT.PROJ_NUM = @proj_num AND ASSIGN_DATE = @newDate 
END 
+4

코드에 문제가 무엇입니까? –

+0

데이터가 테이블에 없으면 select는 0 행을 반환합니다. 그게 뭐가 잘못 됐니? – Luaan

+0

행이 일치하지 않으면 화면에 오류를 표시해야합니다. 잘 작동하는 다른 프로 시저에서 비슷한 명령문을 사용했습니다. 이건 조금 다릅니다. – allendks45

답변

1
IF (@proj_num NOT IN (SELECT ...)) OR (@newDate NOT IN (SELECT ...)) 
    PRINT 'Invalid input. Enter correct Project Number and Date.' 
0

몇 가지 구문 오류를 포함하지만 아이디어는

CREATE PROCEDURE empInfo2 
(
    @proj_num AS char(3) 
    ,@newDate AS smalldatetime 
) 
AS 
BEGIN 
/* Insert IF Statement here Intent is to display an ERROR message 
if the proj_num and/or date are not within the tables*/ 

    IF (NOT EXISTS (
     SELECT 1 FROM PROJECT WHERE PROJ_NUM = @proj_num 
           AND ASSIGN_DATE = @newDate) 
    BEGIN 
     PRINT 'Invalid input. Enter correct Project Number and Date.' 
    END 
    ELSE 

    SELECT EMPLOYEE.EMP_NUM 
    ,EMPLOYEE.EMP_FNAME 
    ,EMPLOYEE.EMP_LNAME 
    ,PROJECT.PROJ_NUM 
    ,ASSIGNMENT.ASSIGN_DATE 

    FROM ASSIGNMENT INNER JOIN EMPLOYEE ON 
    ASSIGNMENT.EMP_NUM = EMPLOYEE.EMP_NUM INNER JOIN 
     PROJECT ON ASSIGNMENT.PROJ_NUM = PROJECT.PROJ_NUM 

    WHERE PROJECT.PROJ_NUM = @proj_num AND ASSIGN_DATE = @newDate 

    END 
관련 문제