Mijn tabel heeft een aantal colommen waarvan de volgende twee voor mijn probleem belangrijk zijn. Deze twee colommen zijn TicketDate /datetime/ en Balance /decimal (18,2)/. Onderstaand is een voorbeeld van de gegevens in mijn tabel. Mijn doel is voor iedere datum de rij met de laatste tijdmarkering op te halen. Van onderstaande gegevens wil ik dus de TicketDate en Balance voor de rijen aangeduid met een • ophalen.
Het ophalen van een resultaat voor een specifieke datum lukt prima, ik kom er echter niet uit wat voor SQL Query ik moet gebruiken om voor elke datum in mijn tabel de rij met de laatste tijd te selecteren.
code:
1
2
3
4
5
6
7
8
9
10
| 3/27/2007 4:00:00 PM, 408.52 [*] 3/28/2007 11:01:14 AM, 408.52 3/28/2007 11:03:49 AM, 408.52 3/28/2007 4:00:00 PM, 408.56 3/28/2007 4:00:00 PM, 408.55 3/28/2007 4:00:00 PM, 408.50 3/28/2007 8:10:43 PM, 401.55 [*] 3/29/2007 4:00:00 PM, 401.59 3/29/2007 4:00:00 PM, 401.54 3/29/2007 5:46:02 PM, 401.61 [*] |
Het ophalen van een resultaat voor een specifieke datum lukt prima, ik kom er echter niet uit wat voor SQL Query ik moet gebruiken om voor elke datum in mijn tabel de rij met de laatste tijd te selecteren.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| ArrayList datetime = new ArrayList(); ArrayList balance = new ArrayList(); //Query to execute. SqlCommand cmd = new SqlCommand("SELECT TOP 1 TicketDate, Balance FROM Data WHERE TicketDate >= '20070329' AND TicketDate < '20070330' ORDER BY TicketDate DESC", con); //Open the connection. con.Open(); //Execute reader. SqlDataReader rdr = cmd.ExecuteReader(); //Process the results. while (rdr.Read()) { datetime.Add(rdr[0]); balance.Add(rdr[1]); } if (con != null) con.Close(); if (rdr != null) rdr.Close(); datetime.TrimToSize(); balance.TrimToSize(); |