Announcement

Collapse
No announcement yet.

sql Probleme

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

  • sql Probleme

    Hallo, ich habe folgendes Problem, ich möchte eine sql Abfrage schreiben, die
    wie hier z.B. die ID zurückgibt welche als nr die Zahl 6 und 7 haben
    Hier wäre es die ID 1 2 und 3.




    Danke schon mal im Vorraus, ich bekomm das ein fach nicht hin

    eigentlich dachte ich

    SELECT ID FROM Tabelle1
    WHERE NR = 6 AND NR = 7

    aber da kommt nix

  • #2
    Mit welcher Scriptsprache arbeitest Du? Wenn Du in einem PHP Script diese SQL Abfrage ausgeben willst, mache ich das immer mit dem folgenden Code:

    PHP Code:
    <?php 
            
    require('mysql.php'); // Verbindung zur jeweiligen Datenbank
            
    $sqlselect"SELECT * FROM Tabelle1 WHERE `nr`='6' AND `nr`='7'";
            if(!
    $res_id mysql_query($sqlselect)){
            die(
    mysql_error());
            }
            while(
    $id=mysql_fetch_array($res_id)){
            echo 
    $id['ID'].'">'// Ausgabe des Inhalts aus der Spalte "ID"
            
    }        
    ?>
    Bei deiner oben genannten Abfrage liegt auch das Problem darin, dass Du in der Abfrage "NR" groß geschrieben hast, aber in der Tabelle ist es klein. Darauf müsste man auch achten.
    PHP Code:
    <?php
    echo 'http://acs-it-worx.de/';
    echo 
    'http://www.youtube.com/user/ACSITWorx/'// mein YouTube Kanal
    echo '-----------------------------------------------------------------';
    echo 
    'http://www.autoservice-asberg.de/';
    ?>

    Comment


    • #3
      NR = 6 AND NR = 7
      WHERE `nr`='6' AND `nr`='7'";
      AND ? Die Nr soll 6 und 7 sein?
      Christian

      Comment


      • #4
        Hallo, ich schreibe in Access 2007
        Die Felder sind beide als int deklariert, daher fallen doch die Hochkommatas weg.

        MIt der Abfrage
        SELECT ID FROM Tabelle1
        WHERE nr=6 AND nr=7;

        KOmme ich leider nicht zu dem gewünschten Ergebnis.

        Um es nocheinmal zu verdeutlichen.



        Es sollen die IDs angezeigt werden, welche die selben werte bei nr stehen haben.


        Ein Beispiel: Die IDs 1,2 und 3 enthalten beide die
        nr 6 und 7
        Daher soll bei der speziellen Abfrage

        SELECT ID FROM Tabelle1
        WHERE nr=6 AND nr=7;

        DIe IDs 1 und 2 zurückgegeben werden

        2. Beispiel: Die IDs 4 und 5 enthalten beide die nr 1 und 4

        Bei der Abfrage
        SELECT ID FROM Tabelle1
        WHERE nr=1 AND nr=4;

        Sollten die IDs 4 und 5 zurück gegeben werden.

        NUn meine Frage, welche Abfrage führt zu dem Ergebnis?
        Zuletzt editiert von Klabauter86; 08.02.2009, 12:09.

        Comment


        • #5
          AND ? Die Nr soll 6 und 7 sein?
          http://de.wikipedia.org/wiki/Logischer_Operator

          Sollten die IDs 4 und 5 zurück gegeben werden.
          Und 3 nicht?

          Deine Abfrage führt zu keinem Ergebnis, weil die Nr nunmal nicht gleichzeitig 6 und 7 sein kann
          Christian

          Comment


          • #6
            Ja dessen bin ich mir bewusst, aber wie komme ich zu dem gewünschten Ergebins?

            Comment


            • #7
              Würde dem Link folgen und die Frage beantworten. Schließlich sind deine Vorgaben "undeutlich" und die Abfrage muss anders aufgebaut werden, wenn die 3 nicht ausgegeben werden soll
              Christian

              Comment


              • #8
                Als kleinen Tipp kann ich noch anbgringen, dass es sich um eine ODER Operation handelt.

                Dim
                Zitat Tom Kyte:
                I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                Comment


                • #9
                  Pühhhh, alles verraten.......

                  Des Weiteren wird er wahrscheinlich noch dies_stinkt oder so ähnlich haben wollen.... für "Einzigartige Ergebnisse"
                  Christian

                  Comment


                  • #10
                    Hallo, ja bei dem ersten beispiel müsste natürlich die ID 1 2 und 3 zurückgegeben werden.
                    Es handelt sich nicht um eine OR anweisung, denn dabei würde doch nur überprüft werden, ob die nr 6 oder 7 ist, aber nicht 6 und 7, daher fällt das doch schon mal raus.

                    Noch weitere Ideen?

                    Comment


                    • #11
                      Noch weitere Ideen?
                      Ja, lies endlich den Wikipediaartikel

                      Erkläre mir mal bitte, wie eine Nr 6 UND 7 sein kann??

                      Beispiel

                      Nr=6

                      Wenn Nr ist 6 UND Nr ist 7

                      ?????

                      *kopfschüttel*
                      Christian

                      Comment


                      • #12
                        Vielleicht solltest du dir auch SQL Grundlagen anlesen.

                        Wenn du eine Tabelle hast die mit Daten gefüllt ist und darauf eine Abfrage machst, mit den Ziel nur Datensätze zu bekommen, die deinen Kriterien entsprechen, wird diese Abfrage auf JEDEN EINZELNEN Datensatz angewandt. D.h. jeder Datensatz wird dahingehend überprüft, ob er den Bedingungen entspricht.

                        Somit ergibt eine Abfrage ob die Datensätze eine Nr 6 ODER 7 enthalten in deinem Fall die Ausgabe

                        1---6
                        1---7
                        2---6
                        2---7
                        3---6
                        3---7

                        Denn diese Datensätze entsprechen der Bedingung.

                        Wie du nun dann die Ausgabe auf

                        1
                        2
                        3

                        einschränkst ist der nächste Schritt, aber keine Frage der Bedingung für die Nummer Siehe http://sql.1keydata.com/de/sql-distinct.php
                        Zuletzt editiert von Christian Marquardt; 08.02.2009, 12:42.
                        Christian

                        Comment


                        • #13
                          Ich glaub, das Problem von dem Kollegen ist etwas anders geartet. Er möchte diejenigen Felder haben, in denen die Kombination 6 und 7 vorkommt - und zwar über zwei Zeilen hinweg.

                          Hätte beispielsweise die ID 1 in der NR eine 6 und die zweite ID 1 eine 9 dann dürfte sie nicht in die Ergebnismenge einfließen (wobei es mir schleierhaft ist, wie man darauf kommt einen mehrdeutigen Wert ID zu nennen aber egal).

                          Hier ist eben das Problem, dass SQL nur zeilwenweise arbeitet. Stell Dir vor, Du legst ein Blatt Papier auf die ausgedruckte Tabelle und gehst Zeile für Zeile durch ohne die nächste zu kennen. Bist Du bei der nächsten kennst wiederum die vorherige nicht.

                          Die Lösung müsste so aussehen, dass man zwei Subselects macht, die jeweis nur eine Bedinung in der WHERE Klausel haben und die Ergebnisse dann joint. In etwa so:
                          Code:
                          select a.id from
                             (select id from tabelle1 where nr=6)a,
                             (select id from tabelle1 where nr=7)b
                          where a.id=b.id
                          Da ich kein Access benutze weiß ich aber nicht, ob diese Schreibweise dort korrekt ist.

                          Dim
                          Zuletzt editiert von dimitri; 08.02.2009, 12:54.
                          Zitat Tom Kyte:
                          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

                          Comment


                          • #14
                            Er möchte diejenigen Felder haben, in denen die Kombination 6 und 7 vorkommt - udn zwar über zwei Zeilen hinweg.
                            Dann ist das aber sehr verquer erklärt, jedenfalls hat es sich mir so nicht erschlossen und das Datenbankdesign wäre auch zu verbessern
                            Christian

                            Comment


                            • #15
                              Hey Dimitri,

                              danke, du hast mich verstanden
                              Ich wollte nur anmerken, dass die Tabelle1 nur eine Bespiel tabelle ist...

                              Ich werde es direkt mal testen. Sonst hätte ich es auch mit unterabfragen gemacht.

                              MFG

                              Comment

                              Working...
                              X