Click here to Skip to main content
15,884,176 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
How to convert the following SQL-C# logic to syntactically-correct SQL code (SQL Server 2005)?

"Description", "LeaveType", "MonthlyMaxLeave", "YearlyMaxLeave" are the column names in the table EmpTab.

I have written a basic logic to calculate the PayLeave and NonPayLeave, and to display its final values. Assume that the fields "Description" and "LeaveType" always contains the values "Sick" and "Yearly" respectively. Please do not worry about the data in the table. The field values in the table may be customized as per the requirements.

Just correct the syntax in the code so as to meet the SQL standards, as well as to display the PayLeave and NonPayLeave values based on the calculation logic shown below.
SQL
USE [Emp1]
GO
CREATE FUNCTION [dbo].[Leave] 
(  
   @EmployeeID INT    
)
RETURNS INT  
AS  
BEGIN 

    DECLARE	@PayLeave INT,
    	@NonPayLeave INT;
    
    SET @PayLeave = 0;
    SET @NonPayLeave = 0;
    
    RETURN
    (
        SELECT
        IF((ImDescription == "Sick") AND (ImLeaveType == "Yearly"))
        {
            IF((ImMonthlyMaxLeave > 1) OR (ImYearlyMaxLeave > 10 ))
            {
            	@NonPayLeave = @NonPayLeave + 1;
            	PRINT @NonPayLeave;
            }		
            ELSE
            {	
            	@PayLeave = @PayLeave + 1;
                PRINT @PayLeave;
            }
        }
    )
END

--PRINT dbo.Leave('123')
Posted
Updated 14-Mar-13 21:09pm
v2
Comments
Karthik Harve 15-Mar-13 3:10am    
[Edit] pre tags added.
Maciej Los 6-Apr-13 16:55pm    
Please, be more specific and provide more details.
Are you trying to count NonPayLeave and PayLeave for employee with EmployeeID?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900