Announcement

Collapse
No announcement yet.

Sql Befehl

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

  • Sql Befehl

    Hallo Leute ich hoffe ihr könnt mir helfen also folgendes Problem
    ich habe 2 Tabelle

    Felder der 1 Tabelle :
    NR
    Status

    Felder der zweiten Tabelle:
    NR
    Bezeichnung
    Merkmal


    Datensatz in der ersten Tabelle:
    100
    A

    Datensätze in der zweiten Tabelle:
    Nr,Bezeichnung,Merkmal
    100,A,2
    100,A,3
    100,B,44
    100,B,51
    100,C,33


    Die Datensätze sind alle nur Beispielhaft es sind natürlich tausende andere Sätze noch zusätzliche in der Datenbank.

    So nun muss eine Abfrage gemacht werden für diese Abfrage haben wir folgende eingaben
    A1,A3,B44,B51 (BezeichnungMerkmal)

    es soll genau die Nr gefunden werden die diesen Kriterien entspricht und den Status A hat es gibt aber auch mehrere Sätze die genaudasgleiche erfüllen.


    wie setze ich am besten den Sql Befehl zusammen das ich genau die Datensätze angezeigt bekomme die ich brauche und noch alle anderen die zu dieser Nummer gehören .
    Ich hoffe ihr könnt mein Problem nachvollziehen .


    Gruß fireli

  • #2
    Das wird nicht so einfach gehen, da du die eingaben ja erst zerlegen musst.
    zudem hast du nicht geschrieben, wie die beiden Tabellen in Beziehung stehen.

    Comment


    • #3
      Also ich bin ein Stück weiter da ich die Eingaben zerlegt bekomme kann ich folgenden SQL Befehl benutzen

      select * from tabelle2,tabelle1 where tabelle2.nr=tabelle1.nr and tabelle1.status='A'
      and

      ((tabelle2.bezeichnung='A' and tabelle2.merkmal='2')
      or (tabelle2.bezeichnung='A' and tabelle2.merkmal='3')
      or (tabelle2.bezeichnung='B' and tabelle2.merkmal='44')
      or (tabelle2.bezeichnung='B' and tabelle2.merkmal='51') )
      order by tabelle2.nr

      so nun ist der Nachteil ich bekomme zwar alle Datensätze angezeigt die den Krieterien entsprechen aber ein Ergebnis besteht immer aus einem Block von 4 Datensätzen die in der NR gleich sein müssen da ich habe auch noch einen 5 Datensatz zu dieser NR habe muss dieser auch mit angezeigt werden.

      Es gibt zum Beispiel auch einen Block aus Datensätzen wie folgt
      102,A,2
      102,A,5
      102,B,44
      102,B,51

      mit dem SQl Befehl bekomme ich drei von diesen Datensätzen auch mit angezeigt die aber nicht das sind was ich suche ich suche einen Block aus 4 Datensätzen die in der Nummer gleich sind und jeweils 1 Datensatz eins der Kreiterien entspricht.
      Ich hoffe das war verständlich ausgedrückt ist etwas kompliziert

      Comment


      • #4
        >ist etwas kompliziert
        nein nur etwas wirr

        Also was ich zu verstanden haben glaube:
        Du möchstes die aus der Tabelle 1 diejenigen Datensätze, die den angegebenen Kriterien aus Tabelle 2 entsprechen. Oder?

        Vielleicht so:
        select distinct Tabelle1.* from tabelle2,tabelle1 where tabelle2.nr=tabelle1.nr and tabelle1.status='A'
        and

        ((tabelle2.bezeichnung='A' and tabelle2.merkmal='2')
        or (tabelle2.bezeichnung='A' and tabelle2.merkmal='3')
        or (tabelle2.bezeichnung='B' and tabelle2.merkmal='44')
        or (tabelle2.bezeichnung='B' and tabelle2.merkmal='51') )
        order by tabelle2.nr

        Wenns das nicht ist hilft vielleicht ein Beispiel.
        Was steht in den Tabellen
        Was möchte ich als Antwort
        Was erhalte ich als Antwort

        BYE BERND

        Comment

        Working...
        X