Ergebnis 1 bis 4 von 4

Thema: Select abfrage mit bestem ergebnis??

  1. #1
    Henning ist offline Neuer Benutzer
    Registriert seit
    04.03.2008
    Beiträge
    1

    Unglücklich Select abfrage mit bestem ergebnis??

    Hallo

    ich versuche folgende abfrage zu starten. Es gibt eine Datenbank mit allen vorwahlnummern ,wobei noch ein Datenfeld mit der Region existiert, aus Deutschland und einige 100 vollständige Telefonnummern. Jetzt ruft einer an und ich möchte in der Datenbank sehen ob zum 1 diese Nummer vollständig in der Datenbank steht und wenn nicht möchte ich die Rufnummer in der Datenbank nachsehen welche Vorwahl hier passt und möchte mir die Region zurückgeben lassen.

    Wie stelle ich das an. Ich weiß das es geht aber leider nicht wie.
    Hoffentlich kann mir einer helfen.

    Danke

    Gruß Henning

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Nun, du wirst zwei Abfragen brauchen ...
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  3. #3
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von Henning Beitrag anzeigen
    Hallo

    ich versuche folgende abfrage zu starten. Es gibt eine Datenbank mit allen vorwahlnummern ,wobei noch ein Datenfeld mit der Region existiert, aus Deutschland und einige 100 vollständige Telefonnummern. Jetzt ruft einer an und ich möchte in der Datenbank sehen ob zum 1 diese Nummer vollständig in der Datenbank steht und wenn nicht möchte ich die Rufnummer in der Datenbank nachsehen welche Vorwahl hier passt und möchte mir die Region zurückgeben lassen.

    Wie stelle ich das an. Ich weiß das es geht aber leider nicht wie.
    Hoffentlich kann mir einer helfen.

    Danke

    Gruß Henning
    Zu dem, was ads sagte, noch eine Frage an Dich: wie trennst Du folgende Nummern in Vorwahl und Rufnummer?

    03514586127
    03521452231
    035242470
    03524247150

    Angenommen, keine dieser Nummern ist bisher bekannt. Du willst also nun in der Tabelle mit den Vorwahl-Nummern schauen. Also, sage mir zu jeder der Nummern die korrekte Vorwahl-Nummer.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von Henning Beitrag anzeigen
    Hallo

    ich versuche folgende abfrage zu starten. Es gibt eine Datenbank mit allen vorwahlnummern ,wobei noch ein Datenfeld mit der Region existiert, aus Deutschland und einige 100 vollständige Telefonnummern. Jetzt ruft einer an und ich möchte in der Datenbank sehen ob zum 1 diese Nummer vollständig in der Datenbank steht und wenn nicht möchte ich die Rufnummer in der Datenbank nachsehen welche Vorwahl hier passt und möchte mir die Region zurückgeben lassen.

    Wie stelle ich das an. Ich weiß das es geht aber leider nicht wie.
    Hoffentlich kann mir einer helfen.

    Danke

    Gruß Henning
    Mmh.

    Angenommen, Du hast folgende 2 Tabellen:

    Code:
    test=*# select * from vorwahl ;
       nr   | region
    --------+---------
     0351   | sachsen
     03521  | sachsen
     035204 | sachsen
     035242 | sachsen
    (4 rows)
    
    test=*# select * from komplett ;
         nr      |    inhaber
    -------------+----------------
     03521737874 | max mustermann
     035242470   | zentrale firma
    (2 rows)
    Ich vereinfache das mal zu einem VIEW:

    Code:
    test=*# \d tel
         View "public.tel"
     Column | Type | Modifiers
    --------+------+-----------
     nr     | text |
     region | text |
    View definition:
     SELECT vorwahl.nr, vorwahl.region
       FROM vorwahl
    UNION ALL
     SELECT komplett.nr, komplett.inhaber AS region
       FROM komplett;
    
    test=*# select * from tel;
         nr      |     region
    -------------+----------------
     0351        | sachsen
     03521       | sachsen
     035204      | sachsen
     035242      | sachsen
     03521737874 | max mustermann
     035242470   | zentrale firma
    (6 rows)
    Ich prüfe nun mal auf 2 Nummern und bin nur an dem Datensatz interessiert, der am besten paßt:

    Code:
    test=*# select *, length(nr) as laenge from tel where  '035242470' ~ nr order by length(nr) desc limit 1;
        nr     |     region     | laenge
    -----------+----------------+--------
     035242470 | zentrale firma |      9
    (1 row)
    
    test=*# select *, length(nr) as laenge from tel where  '03524247150' ~ nr order by length(nr) desc limit 1;
       nr   | region  | laenge
    --------+---------+--------
     035242 | sachsen |      6
    (1 row)
    PS.: bitte jetzt keinen Telefonterror auf meiner Durchwahl...


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 24.03.2010, 11:17
  2. Antworten: 14
    Letzter Beitrag: 11.12.2009, 10:50
  3. Antworten: 1
    Letzter Beitrag: 30.06.2008, 19:32
  4. Antworten: 10
    Letzter Beitrag: 11.09.2007, 14:54
  5. Die Abfrage lieferte kein Ergebnis
    Von sladda im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 18.06.2007, 14:23

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