CREATE FUNCTION NoOfWorkingDays
(
@StartDate DATE,
@EndDate DATE
)
RETURNS int
AS
BEGIN
DECLARE @days INT
SELECT @days = (DATEDIFF(dd, @StartDate, @EndDate) + 1) -(DATEDIFF(wk, @StartDate, @EndDate) * 2)
-(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)
RETURN @days
END
USE [ERM_CUSTOM]
SQL query for find the difference between two tables data
USE [ERM_CUSTOM]
GO
/****** Object: StoredProcedure
[dbo].[ERM_MSP_ ResourceCompareAndUpdate] Script Date:
8/17/2016 7:52:02 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Exec [dbo].[ERM_MSP_
ResourceCompareAndUpdate]
ALTER PROCEDURE [dbo].[ERM_MSP_
ResourceCompareAndUpdate]
AS
BEGIN
SELECT ResourceUID,
ResourceName,
ResourceEmailAddress,
WWID
INTO #TempResource
FROM [ERM].[MSP_EpmResource_ UserView] -- Gets all data from view and Stored on a temp
table.
CREATE TABLE #TempDifferenceResource
( ResourceUID nvarchar(max),
ResourceName nvarchar(max),
ResourceEmialAddrss nvarchar(max),
WWID nvarchar(max)
) --- create another
temp table
INSERT INTO
#TempDifferenceResource
SELECT * FROM
#TempResource
EXCEPT
SELECT * FROM
[dbo].[ResouceCompare] -- insert difference data to the temp table
UPDATE
base
SET
base.ResourceName =
tempDiff.ResourceName,
base.ResourceEmialAddrss =
tempDiff.ResourceEmialAddrss ,
base.WWID = tempDiff.WWID
FROM
[dbo].[ResouceCompare] base
JOIN
#TempDifferenceResource
tempDiff
ON base.ResourceUID=tempDiff. ResourceUID -- update existing date to base table
insert into [dbo].[ResouceCompare]
select tempDiff.ResourceUID,tempDiff. ResourceName,tempDiff. ResourceEmialAddrss,tempDiff. WWID FROM
[dbo].[ResouceCompare] base
JOIN
#TempDifferenceResource
tempDiff
ON
base.ResourceUID<>tempDiff. ResourceUID -- insert new data to base table
select * from [dbo].[ResouceCompare]
DROP TABLE #TempResource
DROP TABLE #TempDifferenceResource
END