Click here to Skip to main content
15,909,324 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i have columns workordercurid,requiredbytime ,ODS_Start_date,instanceid

I need how many workordercurid's having updated/modified requiredbytime based on ods_start_date and instanceid.
Here Workorderccurid is unique column

select WorkorderCurID,count(RequiredByDtime) RequiredByDtime,CreateDtime  from (
select * from  DMSWEB.ODS_RECWorkOrderHeader (nolock))a
group by WorkorderCurID,CreateDtime
having count(RequiredByDtime)>1
order by CreateDtime


What I have tried:

select WorkorderCurID,count(RequiredByDtime) RequiredByDtime,CreateDtime  from (
select * from  DMSWEB.ODS_RECWorkOrderHeader (nolock))a
group by WorkorderCurID,CreateDtime
having count(RequiredByDtime)>1
order by CreateDtime
Posted
Updated 25-Jul-17 7:56am
v4

1 solution

I don't know what ods_start_date is but the following example should give you an idea. Since you didn't post any schema/sample data, I'm using a var table in sql server with some sample data i created. My columns are a bit different but you should be able to see the general direction of where this is headed.

SQL
DECLARE @WorkOrders TABLE (
	WorkOrderId INT NULL, --same as WorkorderCurID
	RequiredBy DATETIME NULL, --same as RequiredByDtime
	DateCreated DATETIME NULL -- same as CreateDtime
);

INSERT INTO @WorkOrders ( WorkOrderId, RequiredBy, DateCreated)
VALUES  ( 1 , -- WorkOrderId - int
          '2017-07-25 13:50:03.000', -- RequiredBy - datetime
          GETDATE()  -- DateCreated - datetime
        )
INSERT INTO @WorkOrders ( WorkOrderId ,RequiredBy ,DateCreated)
VALUES  ( 1 , -- WorkOrderId - int
          '2017-07-25 13:50:03.000', -- RequiredBy - datetime
          GETDATE()  -- DateCreated - datetime
        )
INSERT INTO @WorkOrders ( WorkOrderId ,RequiredBy ,DateCreated)
VALUES  ( 2 , -- WorkOrderId - int
          '2017-07-25 13:50:00.000', -- RequiredBy - datetime
          GETDATE()  -- DateCreated - datetime
        )
INSERT INTO @WorkOrders ( WorkOrderId ,RequiredBy ,DateCreated)
VALUES  ( 2 , -- WorkOrderId - int
          '2017-07-25 13:50:00.000', -- RequiredBy - datetime
          GETDATE()  -- DateCreated - datetime
        )
INSERT INTO @WorkOrders ( WorkOrderId ,RequiredBy ,DateCreated)
VALUES  ( 2 , -- WorkOrderId - int
          '2017-07-25 11:50:03.000', -- RequiredBy - datetime
          GETDATE()  -- DateCreated - datetime
        )

--Get counts by Date and Time
		SELECT WorkOrderId,RequiredBy, COUNT(*) AS WorkOrderCount FROM @WorkOrders
		GROUP BY WorkOrderId,RequiredBy

		--Get counts by date only
		SELECT WorkOrderId,CAST(RequiredBy AS DATE), COUNT(*) AS WorkOrderCount FROM @WorkOrders
		GROUP BY WorkOrderId,CAST(RequiredBy AS DATE)



I'm not clear on what ods_start_date is so you'll have to include it in my example if you try running it but otherwise this should provide you the general idea.

I've included two queries, one that gets counts by date and time. In this one you'll see how work order 2 has two rows since there are 2 different unique times for that work order.

The second is if you were to count work orders by required date (Date) only. So you'll see its broken down into 2 entries and the counts adjust by date instead of date + time for work order 2.

Feel free to ask any questions.
 
Share this answer
 

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