Announcement

Collapse
No announcement yet.

leidige theme Dubletten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • leidige theme Dubletten

    Hallo,
    ich weiß ist ganz schön viel um was ich hier bitte aber Viehleicht kann mir ja jemand helfen?

    ich habe eine Datenbank mit 3 Tabellen. sagen wir a , b , c
    Tabelle a enthält Vorname, Nachnahme und Personennummer
    Tabelle b enthält Telefonnummern und Personennummer
    Tabelle c enthält Personennummer und Lizenz

    als erstes soll geprüft werden ob Tabelle a doppelte einträge hat
    wenn ja sollen diese doppelten einträge mit Tabelle b verglichen werden und geschaut werden bei welchem eintrag die telefonnummer nicht mit 0 anfängt
    diese einträge sollen dann in Tabelle c bei Lizenz die Zahl 9 bekommen.



    ich sag schonmal ganz doll danke

  • #2
    Hallo!

    Meine Tippfäller gibts umsonst

    update Daten3 set lizenz = 9 where personennummer in(
    select personennummer from Daten1 a
    where
    exists (
    select * from Daten1 a1 where a1.personennummer <> a.personennummer
    and a1.Vorname = a.vorname and a1.name = a.name)
    and exists (
    select * from Daten2 b where b.personennummer = a.personennummer
    and b.telefonnummer not like '0%')
    )

    Ist klar, wenn die Namensfelder nicht zu 100% übereinstimmen klappts nicht.
    Um jetzt das Ganze noch weiter zu versbessern musst Du Dich mal mit Dingen wie Soundex etc. beschäftigen. Damit erhälts Du mehr (aber auch falsche) Treffer)

    BYE BERND

    Comment


    • #3
      super, ich dank dir !!!!
      hast mein leben gerettet.
      muste noch ne kleine änderung machen aber lag nur daran das ich mich nicht richtig hier ausgedrückt hab.

      hoffe ich komme irgendwann mal dazu sql zu lernen. sonst droh ich jetzt schonmal an das ich wieder fragen werden )

      Comment


      • #4
        hallo, wollte nicht nen neuen beitrag aufmachen da es sich um die gleiche sache handelt.
        ich habe die obrige anweisung auf meine bedürfnisse angepast :

        update crm5.person set retired = 1 where person_id in(
        select person_id from crm5.person a
        where
        exists (
        select * from crm5.person a1 where a1.person_id <> a.person_id
        and a1.firstname = a.firstname and a1.lastname = a.lastname and a1.contact_id=a.contact_id)
        and exists (
        select * from crm5.phone b where b.owner_id = a.person_id
        and b.phone not like '0%')
        )

        jetzt unwissend wie ich bin würde ich gerne eine anweisung haben die mir vorher ausgibt was sie da machen würde


        select firstname,lastname from crm5.person a
        where
        exists (
        select * from crm5.person a1 where a1.person_id <> a.person_id
        and a1.firstname = a.firstname and a1.lastname = a.lastname and a1.contact_id=a.contact_id)
        and exists (
        select * from crm5.phone b where b.owner_id = a.person_id
        and b.phone not like '0%')


        zusätzlich müste ich aber das noch unterbringen :


        Select A2.phone,A1.person_id, A2.validFrom
        A3.contact_id
        From crm5.person A1, crm5.phone A2, crm5.contact A3
        where A1.person_id=A2.owner_id and A1.contact_id=A3.contact_id


        egal wie ich das versuche zu kombinieren. mssql hängt sich in eine endlosschleife auf ;(


        kann man da jemand wieder netterweise helfen?

        Comment


        • #5
          so ich mal wieder

          wie sich herausstellte ist das script doch nicht ganz fehlerfrei:
          ansich sollte es keine leute rausziehen die mit einer 0 anfagen.. tut es aber..
          weiß jemand evtl warum?

          USE [SuperOffice]
          update crm5.person set retired = 1 ,duplikat=1
          where person_id in(
          select person_id from crm5.person a
          where
          exists (
          select * from crm5.person a1 where a1.person_id <> a.person_id
          and a1.firstname = a.firstname and a1.lastname = a.lastname and a1.contact_id=a.contact_id)
          and exists (
          select * from crm5.phone b where b.owner_id = a.person_id
          and b.phone not like '0%')
          )

          Comment


          • #6
            Hallo!

            Wenn ich mehrere Telefonnummern haben eine mit ner 1 und eine mit ner 0 soll ich dann selektiert werden oder nicht?

            BYE BERND

            Comment

            Working...
            X