HIIILLLFFFEEEE !!! SQL Vergleich

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

  • HIIILLLFFFEEEE !!! SQL Vergleich

    Hallo,

    vielleicht kann mir einer weiterhelfen,

    In Access habe ich folgende Tabellen
    [list=a][*] FRACHTKOSTEN (excel import, hier stehen die Kunden zu einem Bauvorhaben, als TEXT)[*] Kundendaten (excel import, hier stehen die Kunden mit Kundennr.[/list=a]

    Jetzt hab ich eine Abfrage gemacht die mir die Kundennr zu einem Kunden sucht.

    SELECT FRACHTKOSTEN.Nummer, FRACHTKOSTEN.Kunde, Kundendaten.Kunde, Kundendaten.KundenNr
    FROM FRACHTKOSTEN, Kundendaten
    WHERE FRACHTKOSTEN.Kunde LIKE Kundendaten.Kunde;

    In der Tabelle Frachtkosten sind es 1801 Datensätze nach der Abfrage habe ich aber nur 1781 wie kann ich die fehlenden filtern ???

    SORRY, hoffentlich ist es jetzt verständlicher !!!
    Last edited by Oraj; 11-12-2002, 16:42.

  • #2
    ich bin zwar hilfsbereit, aber verstehe jetzt nicht genau was du haben willst... :/
    meine Projekte bestaunen: http://www.kleiza.de

    Comment


    • #3
      Hi,

      interessante Frage. Also laut meinem MySQL-Buch sollte es so aussehen:


      PHP Code:

      $sql 
      ="SELECT   fracht_kdnr_tbl.*  FROM  fracht_kdnr_tbl   LEFT JOIN  
      fracht_ohne_tbl   ON   fracht_kdnr_tbl.kunde = fracht_ohne_tbl.kunde 
      WHERE  fracht_ohne_tbl.kunde IS NULL"


      Die Ergebnisliste beinhaltet dann die Datensätze, die nicht in der anderen Tabelle vorhanden sind.
      Probiers mal aus. Ich kanns momentan nicht testen aber "Versuch macht kluch"

      wurzel
      Kissolino.com

      Comment


      • #4
        @ Campus

        Sorry, sitz jetzt seit heute morgen an der Schei... hab es schon auf 1782 Datensätze geschafft, heute morgen waren es nur 1400 !!! Kann kaum noch klar denken, hab vielleicht deshalb so ein durcheinander geschrieben.

        @ Wurzel

        Danke, wenn es funktioniert melde ich mich nochmal.

        Comment


        • #5
          @ Wurzel

          So gehts leider nicht !!!

          Aber die Abfrage überprüft ja auch ob Kunden Fracht_Ohne_Nr.Kunde NULL ist. aber das war nicht gemeint, vielelicht hast du das falsch verstanden, sorry wegen meiner schlechten ausdrucksweise !!!

          Ich brauche die Datensätze die NICHT in der Tabelle mit Nummer vorkommen (müsste ja anhand der Frachtkostennummer funktionieren) aber in der Tabelle ohne Nummer drin stehen.

          Hab es schon mit FRACHTKOSTEN.Nr != Kunden.FrachtkostenNr probiert , geht auch nicht !!!

          Comment


          • #6
            Dann dreh die Query doch einfach um:

            $sql ="SELECT a.* FROM fracht_ohne_tbl a
            LEFT JOIN fracht_kdnr_tbl b ON b.kunde = a.kunde
            WHERE b.kunde IS NULL";
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Comment


            • #7
              Schreib ich echt so ne scheiße oder chinesisch das mich keiner versteht, oder denk ich viel zu kompliziert:

              Tabelle FRACHTKOSTEN
              |Kennnummer|Kunde| usw...
              | 1 | abc | ...
              | 2 | abc |...
              | 3 | abc |...
              | 4 | def |...
              | 5 | def |...
              | 6 | ghi |...
              | 7 | ghi |...
              | 8 | ghi |...

              Tabelle Kunden mit Nummer
              |NUMMER|MATCH|
              | 10210 | abc |
              | 15647 | def |
              | 41231 | ghi |


              Dann kommt meine Abfrage:
              SELECT FRACHTKOSTEN.Kennummer, FRACHTKOSTEN.Kunde, blh.NUMMER
              FROM FRACHTKOSTEN, blh
              WHERE FRACHTKOSTEN.Kunde LIKE blh.MATCH;

              Dann bekomme ich
              |Kennummer|Kunde|NUMMER|
              |1|abc|10210
              |2|abc|10210
              |3|abc|10210
              ...
              |5|def|15647

              Nach dieser Abfrage fehlen einige (29 von 1801) Datensätze, wie kann ich diese ermitteln ??? Die Kennummer fehlt ja dann auch !!!

              Comment


              • #8
                ICH DANKE JETZT SCHON MAL ALLEN DIE SICH BISHER DEN KOPF ZERBROCHEN HABEN, MEINER IST HEUTE ABEND TOTAL ÜBERHITZT, VOM GANZEN DENKEN !!!

                ALSO NOCHMAL DANKE AN ALLE !!!

                Comment


                • #9
                  ... brrrr, ruhig brauner...


                  hab mal bisschen rumprobiert. Hier meine testtabellen:

                  ------------------------------------------

                  # Tabellenstruktur für Tabelle `kunden`
                  #

                  CREATE TABLE kunden (
                  id int(11) NOT NULL auto_increment,
                  firma varchar(150) NOT NULL default '',
                  kdnr varchar(15) NOT NULL default '',
                  PRIMARY KEY (id)
                  ) TYPE=MyISAM;

                  #
                  # Daten für Tabelle `kunden`
                  #

                  INSERT INTO kunden VALUES (1, 'ich', '123');
                  INSERT INTO kunden VALUES (2, 'du', '124');
                  INSERT INTO kunden VALUES (3, 'er', '125');
                  # --------------------------------------------------------

                  #
                  # Tabellenstruktur für Tabelle `kunden2`
                  #

                  CREATE TABLE kunden2 (
                  id int(11) NOT NULL auto_increment,
                  firma varchar(150) NOT NULL default '',
                  PRIMARY KEY (id)
                  ) TYPE=MyISAM;

                  #
                  # Daten für Tabelle `kunden2`
                  #

                  INSERT INTO kunden2 VALUES (1, 'ich');
                  INSERT INTO kunden2 VALUES (2, 'du');
                  INSERT INTO kunden2 VALUES (3, 'sie');


                  -------------------------------------------------------------

                  Mit dieser Abfrage/diesem script


                  PHP Code:

                  $server 
                  ="127.0.0.1";
                  $user "";
                  $pass "";
                  $dbank "test2";


                  $conn mysql_connect($server$user$pass);
                  $select mysql_select_db($dbank,$conn);



                  $sql "Select kunden2.* from kunden2 LEFT JOIN kunden ON kunden2.firma = kunden.firma where kunden.firma IS Null";

                  $result mysql_query($sql,$conn);

                  while(
                  $row mysql_fetch_array($result))
                  {
                   echo 
                  $row[id]."<br>";

                  ... gibts als Ergebnis ID 3, was auch stimmt. Vielleicht hilft Dir die einfache Konstruktion für Deine Abfrage weiter. So wie ich das sehe ist bei Dir "Kunde" oder die "Frachtnummer" die identische Kolonne. Wenn also keine Schreibfehler drin sind, sollte das klappen.

                  wurzel
                  Kissolino.com

                  Comment


                  • #10
                    Ich kann es morgen erst ausprobieren bin nicht mehr auf der Arbeit, aber ich geb auf jeden Fall bescheidt !!!

                    Comment

                    Working...
                    X