Philippe Renaud
asked on
SQL Query
Hi EE,
I need to calculate the number of hours that an item was on a specific location.
My table is as follow :
Location Item ReceivingDate TransferDate
NA 0123 2014-10-20 8:00 NULL
EE01 0123 2014-10-20 8:00 2014-10-22 11:04
RD 0123 2014-10-20 8:00 2014-10-23 15:32
I would like as a results to have this :
Location Item ReceivingDate TransferDate DaysInLocation
NA 0123 2014-10-20 8:00 NULL 49
EE01 0123 2014-10-20 8:00 2014-10-22 11:04 27
RD 0123 2014-10-20 8:00 2014-10-23 15:32 531
I went approximate with the hours... but the idea is :
hours for NA is the numbers of hours from Receiving date to the transferDate of the item to another place (here is EE01)
hours of EE01 is the numbers of hours from the TransferDate to the next (here is RD)
and RD is the last location for item 0123 so we would calculate of to getdate()
so I need a query to give me all info from table but with an extra column ...
note that Im using sql 2008 .. not 2012..
Thanks...!!!
I need to calculate the number of hours that an item was on a specific location.
My table is as follow :
Location Item ReceivingDate TransferDate
NA 0123 2014-10-20 8:00 NULL
EE01 0123 2014-10-20 8:00 2014-10-22 11:04
RD 0123 2014-10-20 8:00 2014-10-23 15:32
I would like as a results to have this :
Location Item ReceivingDate TransferDate DaysInLocation
NA 0123 2014-10-20 8:00 NULL 49
EE01 0123 2014-10-20 8:00 2014-10-22 11:04 27
RD 0123 2014-10-20 8:00 2014-10-23 15:32 531
I went approximate with the hours... but the idea is :
hours for NA is the numbers of hours from Receiving date to the transferDate of the item to another place (here is EE01)
hours of EE01 is the numbers of hours from the TransferDate to the next (here is RD)
and RD is the last location for item 0123 so we would calculate of to getdate()
so I need a query to give me all info from table but with an extra column ...
note that Im using sql 2008 .. not 2012..
Thanks...!!!
ASKER
Sorr my column should be called: Hours inLocations
since RD is the last location, it means it still there today.
so from getdate() to 2014-10-23 15:32 its like 22 days so like 530 hours, im approximate.
im just displaying the receiving date on all rows Ste5an. I could put NULL on all rows except "NA" if you want. so you would have only 1 receiving date. for 1 location
since RD is the last location, it means it still there today.
so from getdate() to 2014-10-23 15:32 its like 22 days so like 530 hours, im approximate.
im just displaying the receiving date on all rows Ste5an. I could put NULL on all rows except "NA" if you want. so you would have only 1 receiving date. for 1 location
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I think you do not understand.
Look I have remove 1 column it might help you to understand. I have removed ReceivingDate and only kept TransferDate.
RD is the final location for the item 0123.
it has been transfered on 2014-10-23 15:32.
so The number of days the item has been into RD (since TODAY it it still in that location otherwise you would have a fourth row), since today is 11/14/2014 11:59 the numbers of days from Today to 2014-10-23 15:32. is not 3 days. its something like 31. 31 days * 24 is 744
Sorry I put 531 earlier. but do you get the idea ? Your 72 hours you calculated was from NA to RD but I dont need to know that time because you have skipped 1 location. I need the time for each without skipping.
Location Item TransferDate HoursInLocation
NA 0123 2014-10-20 8:00 49
EE01 0123 2014-10-22 11:04 27
RD 0123 2014-10-23 15:32 744
it is roughly 49 hours in row NA because it was transfered on 10-22 11:04 into EE01 so from 10-20 8:00 to 10-22-11:04 this is the time I want.
it is roughly 27 hours in row EE01 because it was transfered on 10-23 15:32 into RD so from 10-22 11:04 to 10-23 15:32 this is the time I want.
it is roughly 744 hours in row RD because it was NEVER transfered elsewhere so from 2014-10-23 15:32 to GETDATE() this is the time I want.
Look I have remove 1 column it might help you to understand. I have removed ReceivingDate and only kept TransferDate.
RD is the final location for the item 0123.
it has been transfered on 2014-10-23 15:32.
so The number of days the item has been into RD (since TODAY it it still in that location otherwise you would have a fourth row), since today is 11/14/2014 11:59 the numbers of days from Today to 2014-10-23 15:32. is not 3 days. its something like 31. 31 days * 24 is 744
Sorry I put 531 earlier. but do you get the idea ? Your 72 hours you calculated was from NA to RD but I dont need to know that time because you have skipped 1 location. I need the time for each without skipping.
Location Item TransferDate HoursInLocation
NA 0123 2014-10-20 8:00 49
EE01 0123 2014-10-22 11:04 27
RD 0123 2014-10-23 15:32 744
it is roughly 49 hours in row NA because it was transfered on 10-22 11:04 into EE01 so from 10-20 8:00 to 10-22-11:04 this is the time I want.
it is roughly 27 hours in row EE01 because it was transfered on 10-23 15:32 into RD so from 10-22 11:04 to 10-23 15:32 this is the time I want.
it is roughly 744 hours in row RD because it was NEVER transfered elsewhere so from 2014-10-23 15:32 to GETDATE() this is the time I want.
ASKER
It seems good yes, I just ran it. My god im way out with my 744 hours yes 531 seems good. sorry
your code seems ok
your code seems ok
ASKER
thanks
531 days? Where does this number comes from?
Another problem: How can be the same item at three different locations at the same time?