Jawab SQL Select Procedure with multiple params

  • 10 Agustus 2012 12:43
     
      Memiliki Kode

    Hey, I've never used SQL stored procedures before and i've been struggleing trying to get this to work, Its pretty self explanatory you send in either 0, 1 or 2 of the params and depending on what you send it it selects accordingly, however I get the error "Incorrect syntax near 'END'." Any help would be greatly appreciated !

    ALTER PROCEDURE [dbo].[SelectPatMedHist] 
    	@PractPCode nvarchar(10)='NA', 
    	@PatID int=-1
    AS
    
    	SET NOCOUNT ON;
    
      IF @PractPCode = 'NA'		AND		@PatID <> -1
          BEGIN  SELECT *  FROM [db].[tblMedHist] WHERE  [PatID] = @PatID
        
      IF @PractPCode <> 'NA'		AND		@PatID = -1
          BEGIN  SELECT *  FROM [db].[tblMedHist] WHERE  [PractPCode] = @PractPCode
        
      IF @PractPCode <> 'NA'		AND		@PatID <> -1
          BEGIN  SELECT *  FROM [db].[tblMedHist]  WHERE  [PractPCode] = @PractPCode  AND	[PatID] = @PatID
        
      END

    Many Thanks

Semua Balasan

  • 10 Agustus 2012 12:48
    Moderator
     
     Jawab Memiliki Kode

    It looks to me like what you might want is something like this:

    IF @PractPCode = 'NA' AND @PatID <> -1 BEGIN SELECT * FROM [db].[tblMedHist] WHERE [PatID] = @PatID end else IF @PractPCode <> 'NA' AND @PatID = -1 BEGIN SELECT * FROM [db].[tblMedHist] WHERE [PractPCode] = @PractPCode end else IF @PractPCode <> 'NA' AND @PatID <> -1 BEGIN SELECT * FROM [db].[tblMedHist] WHERE [PractPCode] = @PractPCode AND [PatID] = @PatID end




  • 10 Agustus 2012 13:00
     
     
    Thank you this worked fine!