SQL Query help

DnetMHZ

Diamond Member
Apr 10, 2001
9,826
1
81
Lets say I have a table called Table1 with the following columns/data.

ItemNumber, Value, ValueDate

0001, $10.00, 01/01/2005
0001, $20.00, 02/01/2005
1234, $15.00, 01/01/2005
1234, $30.00, 02/01/2005

As you can see each item may appear multiple times. What I need to do is get the total
value of all the items using the most current valuedate. In other words sum the most recent single value of each item.

Given the data above the result should be $50.00
Item 0001 @ $20 + Item 1234 @ $30


Thanks in advance
DnetMHZ


 

wkinney

Senior member
Dec 10, 2004
268
0
0
Originally posted by: DnetMHZ
Lets say I have a table called Table1 with the following columns/data.

ItemNumber, Value, ValueDate

0001, $10.00, 01/01/2005
0001, $20.00, 02/01/2005
1234, $15.00, 01/01/2005
1234, $30.00, 02/01/2005

As you can see each item may appear multiple times. What I need to do is get the total
value of all the items using the most current valuedate. In other words sum the most recent single value of each item.

Given the data above the result should be $50.00
Item 0001 @ $20 + Item 1234 @ $30


Thanks in advance
DnetMHZ


http://www.w3schools.com/sql/sql_groupby.asp
 

DnetMHZ

Diamond Member
Apr 10, 2001
9,826
1
81
Originally posted by: wkinney
Originally posted by: DnetMHZ
Lets say I have a table called Table1 with the following columns/data.

ItemNumber, Value, ValueDate

0001, $10.00, 01/01/2005
0001, $20.00, 02/01/2005
1234, $15.00, 01/01/2005
1234, $30.00, 02/01/2005

As you can see each item may appear multiple times. What I need to do is get the total
value of all the items using the most current valuedate. In other words sum the most recent single value of each item.

Given the data above the result should be $50.00
Item 0001 @ $20 + Item 1234 @ $30


Thanks in advance
DnetMHZ


http://www.w3schools.com/sql/sql_groupby.asp


It's a little more complicated than just a grouping.
 

MrChad

Lifer
Aug 22, 2001
13,507
3
81
Originally posted by: DnetMHZ
Lets say I have a table called Table1 with the following columns/data.

ItemNumber, Value, ValueDate

0001, $10.00, 01/01/2005
0001, $20.00, 02/01/2005
1234, $15.00, 01/01/2005
1234, $30.00, 02/01/2005

As you can see each item may appear multiple times. What I need to do is get the total
value of all the items using the most current valuedate. In other words sum the most recent single value of each item.

Given the data above the result should be $50.00
Item 0001 @ $20 + Item 1234 @ $30


Thanks in advance
DnetMHZ

Assuming that ValueDate is unique per Item:

SELECT SUM(Value)
FROM (SELECT ItemNumber, Value FROM Table1 WHERE ValueDate = (SELECT MAX(ValueDate) FROM Table1 SubTable WHERE SubTable.ItemNumber = Table1.ItemNumber))
 

DnetMHZ

Diamond Member
Apr 10, 2001
9,826
1
81
Originally posted by: MrChad
Originally posted by: DnetMHZ
Lets say I have a table called Table1 with the following columns/data.

ItemNumber, Value, ValueDate

0001, $10.00, 01/01/2005
0001, $20.00, 02/01/2005
1234, $15.00, 01/01/2005
1234, $30.00, 02/01/2005

As you can see each item may appear multiple times. What I need to do is get the total
value of all the items using the most current valuedate. In other words sum the most recent single value of each item.

Given the data above the result should be $50.00
Item 0001 @ $20 + Item 1234 @ $30


Thanks in advance
DnetMHZ

Assuming that ValueDate is unique per Item:

SELECT SUM(Value)
FROM (SELECT ItemNumber, Value FROM Table1 WHERE ValueDate = (SELECT MAX(ValueDate) FROM Table1 SubTable WHERE SubTable.ItemNumber = Table1.ItemNumber))


Thanks so much MrChad, you come through once again.

DnetMHZ
 

Velk

Senior member
Jul 29, 2004
734
0
0
Originally posted by: DnetMHZ
Originally posted by: MrChad
Originally posted by: DnetMHZ
Lets say I have a table called Table1 with the following columns/data.

ItemNumber, Value, ValueDate

0001, $10.00, 01/01/2005
0001, $20.00, 02/01/2005
1234, $15.00, 01/01/2005
1234, $30.00, 02/01/2005

As you can see each item may appear multiple times. What I need to do is get the total
value of all the items using the most current valuedate. In other words sum the most recent single value of each item.

Given the data above the result should be $50.00
Item 0001 @ $20 + Item 1234 @ $30


Thanks in advance
DnetMHZ

Assuming that ValueDate is unique per Item:

SELECT SUM(Value)
FROM (SELECT ItemNumber, Value FROM Table1 WHERE ValueDate = (SELECT MAX(ValueDate) FROM Table1 SubTable WHERE SubTable.ItemNumber = Table1.ItemNumber))


Thanks so much MrChad, you come through once again.

That will work given the assumptions, but are you 100% confident that there will never be a circumstance where you will have two entries for the same item number on the same day ?

I find this one is very rarely true in practice, as inconvenient as that is.


 

mugs

Lifer
Apr 29, 2003
48,920
46
91
Originally posted by: Velk

That will work given the assumptions, but are you 100% confident that there will never be a circumstance where you will have two entries for the same item number on the same day ?

I find this one is very rarely true in practice, as inconvenient as that is.

If that were the case, it would likely cause problems in other areas of the application as well. And if it were the case, they would probably store the time in the ValueDate field as well. Which they may actually be doing, and he just didn't provide that information.
 

Velk

Senior member
Jul 29, 2004
734
0
0
Originally posted by: mugs
Originally posted by: Velk

That will work given the assumptions, but are you 100% confident that there will never be a circumstance where you will have two entries for the same item number on the same day ?

I find this one is very rarely true in practice, as inconvenient as that is.

If that were the case, it would likely cause problems in other areas of the application as well. And if it were the case, they would probably store the time in the ValueDate field as well. Which they may actually be doing, and he just didn't provide that information.


Oh you might be surprised, personally I would be astonished if there was a unique index on the date/part number columns. Hence, I suggest the OP check that it's true before going with the solution suggested upthread - if it is, all good - if it's not he will need to re-think it.
 

DnetMHZ

Diamond Member
Apr 10, 2001
9,826
1
81
Just to clarify, each item is given a value once a month. 1 item will never have 2 entries with the same date.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |