Announcement

Collapse
No announcement yet.

SQL Abfrage!

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

  • SQL Abfrage!

    Hallo leute!
    Hoff von euch kann mir jemand Helfen.

    So nun zu meinem Problem, hoffe ich kann es verständlich rüber bringen.

    Ich habe Zwei Dateien. VKM. und OPT.
    VKM ist die Hauptdatei und OPT. meine Unterdatei.

    Bist dato war es so das wenn ich in eine VKM angelegt habe hate ich die Möglichkeit eine OPT (Option) dazu anzulegen. Wenn ich jedoch den VKM gelöscht habe wurde die OPT nicht gelöscht. (Fehler) Habe diesen Fehler nun ausprogrammiert damit die OPT auch gelöscht wird.

    Nun habe ich das Problem das in meiner OPT-Datei sehr viele Sätze sind die Müll sind.

    Meine Frage nun ist wie ich mit einem SQL Statement abfragen kann ob es in der OPT Sätze gibt die in der VKM schon gelöscht wurden.

    Von der Abfrage her muss auf diese Felder eingeschränkt werden.

    MANDANT
    MARKE
    IMP
    IMPGEB
    SUBMARKE
    VKMCD
    WCD
    HDLNR
    ZOLB
    LAND

    Diese Felder gibt es in der VKM und OPT.
    Das bedeutet ich muss bei jedem Satz in der OPT die genannten Felder nehmen und mit jedem Satz in der VKM vergleichen ob es diesen Satz mit diesen komplett befühlten feldern der OPT in der VKM gibt. (Die genannten Felder sind nicht die kompletten Felder der OPT bzw. VKM.

    Danke für eure Hilfe...

  • #2
    Den VKM Satz gibt es nicht mehr....also ich weiß zur zeit nicht wie ich das Lösen kann

    Comment


    • #3
      Öhm weiss irgendwer was VKM und OPT für Dateien bzw. wie deren Inhalt aussieht? In Linq gibt es bestimmt ein Möglichkeit, allerdings musst Du natürlich die Daten erstmal laden.

      Comment


      • #4
        VKM und OPT sind beliebige namen. Es war gemeint das es sich um zwei " Tabellen" handelt.

        Das Problem ist das ich normalerweise nicht so viel mit SQL zu tun habe. Denn so einfach funktioniert das ganze nicht....

        select * from OPTVP where
        Mandant not in (select Mandant from VKMVP) and
        Marke not in (selcet Marke from VKMVP) and
        IMP not in (select IMP from VKMVP) and
        IMGEB not in (select IMGEB from VKMVP) and
        SUBMARKE not in (select SUBMARKE from VKMVP) and
        VKMCD not in (select VKMCD from VKMVP) and
        WCD not in (select WCD from VKMVP) and
        HDLNR not in (select HDLNR from VKMVP) and
        ZOLB not in (select ZOLB from VKMVP) and
        LAND not in (select LAND from VKMVP)

        So funktioniert es leider nicht
        Die Formatierung ist leider für A und F... (bin in einer As400 umgebung)

        Comment


        • #5
          Das AS400 hättest Du groß und fett dazu schreiben sollen In SQL spricht man eigentlich nie von Dateien und mir wärs auch neu, dass man mit SQL Dateien Abfragen kann.
          Das ist wohl son Special Gedöhns von Texas Instruments. Da muss ich leider passen und kann Dich höchstens an google verweisen

          Comment


          • #6
            ok trozdem danke für deine Zeit

            Comment


            • #7
              Für alle die sich gedanken darüber gemacht haben. Habe dieses Problem anders gelöst.
              (Habe mir ein kleines Korrekturprogramm geschrieben) geht schneller

              Comment


              • #8
                Für die Zukunft: Formatierung von SQL in Beiträgen
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Hi Mike1234,

                  Warum verknüpfst Du die Einzelstatements in deinem WHERE mit and? damit erfasst Du nur die Datensätze, die sowohl einen Mandanten eingetragen haben, den es nicht mehr gibt, eine Marke, die es nicht mehr gibt, eine IMP, die es nicht mehr gibt usw. Hier hätte ich erstmal ein OR eingesetzt.

                  Ansonsten geht auch bei einem einzigen Feld ein

                  [highlight=sql]
                  SELECT * FROM Tabelle 1
                  LEFT JOIN Tabelle2 ON Tabelle1.ForeignKey=Tabelle2.PrimaryKey
                  WHERE Tabelle2.PrimaryKey IS NULL
                  [/highlight]

                  Das wäre hier allerdings ein bisschen aufwendig weil Du mehrfach mit derselben Tabelle verjoinen müsstest und dann jedesmal angeben musst "LEFT JOIN VKMVP As VKM1". Ach ja, hier auch dann in der WHERE Klausel an das OR denken.

                  Gruß
                  Martin

                  Comment

                  Working...
                  X