Ergebnis 1 bis 4 von 4

Thema: komplexe Schleife

  1. #1
    helios12 ist offline Neuer Benutzer
    Registriert seit
    15.09.2009
    Beiträge
    7

    Standard komplexe Schleife

    Guten Abend,

    ich habe ein Problem und weis nicht so recht wie ich an die Sache rangehen soll.

    Also eine Tabelle mit den Felder [ID] [Name,Vorname] und [Geburtsdatum]. Da es mehrere IDs zu einem Namen geben kann, muss ich diese im Zusammenhang mit dem Geburtsdatum selektieren können.

    Wie würdet Ihr das lösen?

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    525

    Standard

    Kannst Du mal ein Beispiel zeigen? Ich verstehe nicht wirklich was Du willst.
    (Übrigens: [ID] ist ein ungültiger Bezeichner für eine Spalte)
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  3. #3
    helios12 ist offline Neuer Benutzer
    Registriert seit
    15.09.2009
    Beiträge
    7

    Standard

    Die Tabelle sieht vereinfacht so aus.

    KundenID,Name,Geburtstag
    1,Müller,Andrea,10.11.1900
    2,Bertram,Evi,19.03.1980
    3,Müller,Andrea,10.11.1900
    4,Heinzel,martin,01.03.1986

    Ich müsste alle Patienten mit gleichem Namen und Geburtsdatum finden, da die KundenID nicht eindeutig ist.

    Als Ergebnis dann:

    Müller,Andrea,11.10.1900,1
    Müller,Andrea,11.10.1900,3

  4. #4
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    525

    Standard

    Wenn's einfach nur um Name und Geburtstag geht:

    Code:
    select name, 
           geburtstag
    from patienten
    group by name, geburtstag
    having count(*) > 1
    Wenn Du die ID auch brauchst, dann sowas:

    Code:
    select *
    from (
      select id, 
             name, 
             geburtstag,
             count(*) over (partition by name, geburtstag) as name_count
      from patienten
    ) t
    where name_count > 1
    Alternativ kannst Du auch, das folgende nehmen (falls Du Postgres vor der Version 8.4 einsetzt), aber das ist vermutlich etwas langsamer:

    Code:
    select *
    from patienten
    where (name, geburtstag) in (
          select name, geburtstag
          from patienten
          group by name, geburtstag
          having count(*) > 1)
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Ähnliche Themen

  1. komplexe where statements?
    Von wrap_it im Forum SQL
    Antworten: 12
    Letzter Beitrag: 12.01.2009, 20:24
  2. Frage user-defined, komplexe typen
    Von symbiont im Forum SQL
    Antworten: 3
    Letzter Beitrag: 06.06.2008, 09:56
  3. komplexe Abfrage mit mehrfachem Count()
    Von Domski im Forum SQL
    Antworten: 4
    Letzter Beitrag: 11.03.2006, 11:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum