CREATE TYPE IdRange AS TABLE
(
IDValue NVARCHAR(MAX)
);
CREATE FUNCTION GET_CUSTOMER_WITH_ID
(@myIDRange IdRange)
RETURNS @ReturnTable TABLE
AS
BEGIN
SELECT
MY_CC.CustomerID AS [Customer ID],
CONCAT(MY_CC.FirstName, ' ', MY_CC.LastName) As Name,
MY_CC.City, MY_CC.State, MY_CC.ZipCode,
MY_CC.DateOfBirth,
MY_AS.EventType AS [Application Status],
MY_AS.EventDateTime AS [Timestamp], MY_AS.ExpirationDate
FROM
[database].[dbo].[MY_CustomerCard] AS MY_CC
INNER JOIN
[database].[dbo].[MY_ApplicationStatus] AS MY_AS ON MY_CC.CustomerID = MY_AS.CustomerID
WHERE
MY_CC.CustomerID IN (SELECT IDValue FROM @myIdRange)
RETURN;
I want to create a function that does something like
SELECT
MY_CC.CustomerID AS [Customer ID],
CONCAT(MY_CC.FirstName, ' ', MY_CC.LastName) AS Name,
MY_CC.City, MY_CC.State, MY_CC.ZipCode,
MY_CC.DateOfBirth,
MY_AS.EventType AS [Application Status],
MY_AS.EventDateTime AS [Timestamp], MY_AS.ExpirationDate
FROM
[database].[dbo].[MY_CustomerCard] AS MY_CC
INNER JOIN
[database].[dbo].[MY_ApplicationStatus] AS MY_AS ON MY_CC.CustomerID = MY_AS.CustomerID
WHERE
CUSTOMERID >= @firstParameter AND CUSTOMERID <= @secondParameter
I am having trouble with getting the parameter value or knowing how to parse the parameters correctly.
Please help.
CREATE FUNCTION dbo.GET_CUSTOMER_WITH_ID
(@startParam int, @endParam int)
RETURNS TABLE
WITH SCHEMABINDING -- better for performance, but blocks changes to underlying objects, forces two-part names
AS
SELECT
MY_CC.CustomerID,
CONCAT(MY_CC.FirstName, ' ', MY_CC.LastName) AS Name,
MY_CC.City, MY_CC.State, MY_CC.ZipCode,
MY_CC.DateOfBirth,
MY_AS.EventType, MY_AS.EventDateTime AS [Timestamp],
MY_AS.ExpirationDate
FROM
[database].[dbo].[RF_CustomerCard] AS RF_CC
INNER JOIN
[database].[dbo].[MY_ApplicationStatus] AS RF_AS ON MY_CC.CustomerID = MY_AS.CustomerID
WHERE
MY_CC.CustomerID BETWEEN @startParam AND @endParam;
GO;
I get an error:
Syntax Error by SELECT MY_CC