Toon posts:

[SQL] Query die zelf een keuze maakt

Pagina: 1
Acties:

Onderwerpen


  • Armageddon_2k
  • Registratie: september 2002
  • Laatst online: 15:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Hey mensen,
Ik ben bezig aan een systeem te knutselen die een zooi aan opgelsagen data een beetje fatsoenlijk kan laten zien. Het gaat om een grote bak aangeleverde data dus ik kan helaas de input in de tabel niet aanpassen.
Er worden verschillende events gelogd, elk event heeft een lange lijst data maar de belangrijkste nu zijn:
ID, starttime en entime.
Nu wil ik graag de events netjes in een lijstje laten zien, maar events die een endtime hebben gekregen staan altijd dubbel in de tabel, waarom snap ik ook niet maar het is zo :P

Het idee is om standaard de rij te selecteren waar een EndTime staat ingevuld. Maar als deze er niet is, dan de rij zonder entime te laten zien. (StartTime kan nooit null zijn).

code:
1
2
3
4
5
6
7
ID          StartTime                          EndTime
1393    2010-10-27 11:40:20.400 2010-10-27 11:42:29.400
1393    2010-10-27 11:40:20.400 NULL
1392    2010-10-27 11:38:23.400 2010-10-27 11:38:29.400
1392    2010-10-27 11:38:23.400 NULL
1391    2010-10-27 11:38:23.400 NULL
1390    2010-10-27 11:38:23.400 NULL


Ik heb vanalles geprobeerd met distinct en top en subquery grappen, maar ik kijk er echt even overheen. Wie kan me een klein beetje opweg helpen zodat het result van de query dit wordt:

code:
1
2
3
4
1393    2010-10-27 11:40:20.400 2010-10-27 11:42:29.400
1392    2010-10-27 11:38:23.400 2010-10-27 11:38:29.400
1391    2010-10-27 11:38:23.400 NULL
1390    2010-10-27 11:38:23.400 NULL

  • NMe
  • Registratie: februari 2004
  • Laatst online: 28-09 14:14

NMe

Quia Ego Sic Dico.

SQL:
1
2
3
SELECT t1.ID, t1.StartTime, (
    SELECT MAX(t2.EndTime) FROM Tabel t2 WHERE t2.ID = t1.ID
) AS EndTime FROM Tabel t1

?

edit:
Owja, of wat justmental zegt natuurlijk. 8)7

[Voor 17% gewijzigd door NMe op 27-10-2010 14:05]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • justmental
  • Registratie: april 2000
  • Niet online

justmental

my heart, the beat

Als alle velden gelijk zijn in de dubbele rijen dan kun je op alle kolommen groeperen behalve de einddatum en dan max(einddatum) selecteren.

Who is John Galt?


  • pedorus
  • Registratie: januari 2008
  • Niet online
Lijkt me een groupwise-max probleem, maar nu met maximaal 2 rijen:
SQL:
1
2
select id, starttime, endtime from table where endtime not is null or not exists 
    (select * from table as table2 where table2.id=table.id and not endtime is null)

Vraag is alleen of dit sneller is dan
SQL:
1
select id, min(starttime), max(endtime) from tabel group by id

Omdat je blijkbaar alleen de endtime zelf nodig hebt.

Vitamine D tekorten in Nederland | Middelen tegen corona


  • Armageddon_2k
  • Registratie: september 2002
  • Laatst online: 15:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
pedorus schreef op woensdag 27 oktober 2010 @ 14:07:
SQL:
1
select id, min(starttime), max(endtime) from tabel group by id

Omdat je blijkbaar alleen de endtime zelf nodig hebt.
_/-\o_ , en voor de rest ook.
Heb je soms, dan krijg je een oplossing voor ogen waarmee je verder en verder gaat terwijl de oplossing simpel kan zijn :P
BigThanks


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee