I have an application that calls a Web Service, I can potentially pass up to 5 ID's to this server and return information.
I create an 'Audit' line in a SQL table to keep a record of all the information submitted.
The ID's can be submitted in ANY order, the columns are
DLN0,DLN1,DLN2,DLN3,DLN4.
I also have DateTime and Username Columns, what I want to try and do is COUNT the number of times an ID has been entered on any given day in any of the 5 columns, because I don't want someone submitting the same ID to the service more than twice (In ANY of the given columns).
I think I could do it by UNION but it makes it very messy to accomplish, or is this the only way to go?
I have done this with some success
SELECT COUNT(MyTbl.DLN0) AS [Count], MyTbl.DLN0 AS [DLN], MyTbl.Username, CONVERT(VARCHAR(12),MyTbl.RequestDT,103) AS [DateTime] FROM
(
SELECT DLN0, [RequestDT], Username FROM dbo.MyL_Audit_Log
UNION
SELECT DLN1, [RequestDT], Username FROM dbo.MyL_Audit_Log
UNION
SELECT DLN2, [RequestDT], Username FROM dbo.MyL_Audit_Log
UNION
SELECT DLN3, [RequestDT], Username FROM dbo.MyL_Audit_Log
UNION
SELECT DLN4, [RequestDT], Username FROM dbo.MyL_Audit_Log
) AS MyTbl
WHERE MyTbl.DLN0 <> ''
GROUP BY MyTbl.DLN0, MyTbl.Username, CONVERT(VARCHAR(12),MyTbl.RequestDT,103)
My Table:
CREATE TABLE [dbo].[MyL_Audit_Log](
[ID] [INT] IDENTITY(1,1) NOT NULL,
[Username] [VARCHAR](30) NOT NULL,
[IP Address] [VARCHAR](15) NOT NULL,
[RequestDT] [DATETIME] NOT NULL,
[TranType] [VARCHAR](20) NOT NULL,
[NoOfDrivers] [INT] NOT NULL,
[DLN0] [VARCHAR](30) NOT NULL,
[PCode] [VARCHAR](15) NULL,
[DLN1] [VARCHAR](30) NULL,
[DLN2] [VARCHAR](30) NULL,
[DLN3] [VARCHAR](30) NULL,
[DLN4] [VARCHAR](30) NULL,
[RequestString] [VARCHAR](MAX) NOT NULL,
[Result] [VARCHAR](30) NOT NULL,
[HttpStatusCode] [VARCHAR](10) NOT NULL,
[ResponseTime] [INT] NOT NULL,
[ReturnedData] [VARCHAR](MAX) NOT NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Sample ID's
XYZ43562MC4 ABC23214MC2 LKU23411PO3
Cheers.