Bestimmte ID abfragen (MSSQL)

  • Allgemein

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    Bestimmte ID abfragen (MSSQL)

    Hallo,

    ich habe ein Produkt, was während seiner Herstellung 3 Stationen durchläuft. An jeder Station bekommt das Produkt einen Datum-Zeit Stempel. Um es eindeutig in der Datenbank identifizieren zu können, ist in jedem DB-Eintrag zum aktuellen Stempel auch der, der 1. Station mit eingefügt.
    D.h. das ich nach Fertigstellung des Produktes immer 3 Einträge zu einem Produkt habe, welche alle eine gleiche IdentID haben und dazu jeweils einen Datum-Zeit Stempel der Station bekommen.

    Jetzt zu meinem Problem:

    Ich möchte aus der ganzen Tabelle immer die Einträge abfragen, welche nur als ProzessID die Zahl 1 haben (jeder Eintrag mit einer 1 hat natürlich auch die 0) und noch keine 2. Das bekomme ich nicht hin. Weiß hier jemand Rat?

    Als Beispiel mal ein Auszug aus der Tabelle.
    Bilder
    • ID.JPG

      23,62 kB, 285×208, 81 mal angesehen
    Wenn die Zeit kommt in der man könnte, ist die vorrüber in der man kann.

    Starkstroemer schrieb:

    Um es eindeutig in der Datenbank identifizieren zu können, ist in jedem DB-Eintrag zum aktuellen Stempel auch der, der 1. Station mit eingefügt.

    Merkwürden Disein ...


    So aus dem Stehgreif würde ich jetzt mal sagen:

    SELECT IdentID, Max(ProzessID) AS MaxPro FROM tabelle GROUP BY IdentID HAVING MaxPro = 1

    oder so ähnlich. Der Trick dürfte jedenfalls das "GROUP BY" sein, denn da kannst du dann ja anhand des "eindeutigen" Timestamps gruppieren.

    picoflop schrieb:

    So aus dem Stehgreif würde ich jetzt mal sagen:

    SELECT IdentID, Max(ProzessID) AS MaxPro FROM tabelle GROUP BY IdentID HAVING MaxPro = 1


    Hallo Picoflop,

    er mault mir im Moment den MaxPro an, warum auch immer...

    Ungültiger Spaltenname 'MaxPro'.


    Aber so wie Du mich verstanden hast, meinte ich es auch. Vielen Dank Dir schon mal für Deine Unterstützung!
    Wenn die Zeit kommt in der man könnte, ist die vorrüber in der man kann.
    Hallo,

    für alle die es evtl. mal interessieren könnte oder aber die genau dieses Problem auch haben hier mal die Lösung:

    select * from Tabelle
    where ProzessID = 1 and IdentID not in (select IdentID from Tabelle where ProzessID = 2)


    Vielen Dank nochmal an Picoflop für Deine Unterstützung!!!
    Wenn die Zeit kommt in der man könnte, ist die vorrüber in der man kann.