[SQL] Afspraak conversie *

Pagina: 1
Acties:

  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Ik heb een tabel met afspraken. De afspraken zijn uniek gesleuteld door datum, patientnummer en tijd.
De patient heeft soms een langere afspraak waardoor hij dubbel in het rijtje komt te staan met dezelfde datum alleen een andere tijd.

Hoe kan ik het aantal keer dat een combinatie van hetzelfde Patientnummer en datum voorkomt optellen? En dat het liefst het aantal in een veld zetten van een record en dan de overige records verwijderen?

Sign of my Time


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
SELECT COUNT (......

Waarom wil je dan dat aantal in een veld zetten, en de rest verwijderen?

Kan je trouwens eens een betere titel bedenken, dan pas ik hem wel aan.

[ Voor 29% gewijzigd door whoami op 22-09-2003 08:35 ]

https://fgheysels.github.io/


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

code:
1
2
3
4
5
6
7
select patientnummer
,      datum
,      count(*)
from   tabel
group by patientnummer
,      datum
having count(*) > 1

Who is John Galt?


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Wat dacht je van zoiets als dit?:
SQL:
1
2
3
4
SELECT Count(AfspraakCode) AS AantalAfspraken, Patient, datum
FROM Afspraken
GROUP BY Patient, datum
HAVING Patient="Janssen" AND datum=#01-01-2003#
Overigens wil ik wel even melden dat ik het aan de enge kant vind dat een afspraak die langer duurt twee keer moet voorkomen in de tabel. Da's een beetje een vreemd datamodel als je het mij vraagt... Het wil namelijk zeggen dat je de (standaard)duur van een afspraak in je tabel niet kunt veranderen. Wat nu als in de toekomst gevraagd wordt of deze periode aangepast kan worden (bijvoorbeeld omdat men meer tijd wil besteden aan patienten)? Dan is dat al reden om een update van je database te moeten doen.

Mijn voorkeur zou uitgegaan zijn naar het opslaan van de duur van de afspraak. Je kunt dan standaard alsnog de standaardduur van een afspraak in de tabel zetten, maar deze is dan in ieder geval aan te passen.

Edit:
JustMental zijn oplossing geeft je een overzicht van alle personen die meer dan één afspraak hebben op een dag, terwijl de mijne het aantal afspraken geeft van een op te geven persoon en datum. Die van JustMental is dus een stuk werkzamer ;)
Waarschijnlijk doordat je openingspost voor meerdere uitleggen vatbaar is :+

[ Voor 18% gewijzigd door OZ-Gump op 22-09-2003 08:39 ]

My personal website


  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
Klopt als een bus we gaan over op een ander agenda programma hier in het ziekenhuis. Het zit nu in een oeroud systeem waar je voor een langere afspraak dus de patient twee keer moet invoeren. In het nieuwe programma staat ook inderdaad een afspraakduur. Die ga ik herleiden van het Type afspraak en het aantal keer dat die afspraak is gemaakt.

De query moet dus het aantal keren dat de pat. voorkomt optellen en dan moet dat met de tijd die voor dat type afspraak staat vermenigvuldigd worden.

Eh een titel... Afspraak conversie

Sign of my Time


  • Wilfred
  • Registratie: Januari 2000
  • Laatst online: 22-08-2022
ik wil juist een combinatie van die twee een opsomming van mensen waarbij het het geval is lukt me wel alleen dat optellen van het aantal wil me niet lukken...

SELECT DISTINCTROW Roe.Patientnummer, Roe.AfspraakDatum, Roe.Afspraaktijd, Roe.Afspraakduur, Roe.Eenheid, Roe.AfspraakType, Roe.Opmerkingen, Roe.Referer
FROM Roe
WHERE (((Roe.Patientnummer) In (SELECT [Patientnummer] FROM [Roe] As Tmp GROUP BY [Patientnummer],[AfspraakDatum] HAVING Count(*)>1 And [AfspraakDatum] = [Roe].[AfspraakDatum])))
ORDER BY Roe.Patientnummer, Roe.AfspraakDatum;

Roe is de afdeling en dit geeft een aantal patienten met dubbele afspraken

Sign of my Time

Pagina: 1