collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 78
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14395
  • stats Beiträge insgesamt: 71381
  • stats Themen insgesamt: 9626
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Anzeige Datensatz mit neuestem Datum, in Bezug auf Bedingung des älteren DS  (Gelesen 309 mal)

Offline Accessoraner

  • Newbie
  • Beiträge: 18
Hallo zusammen,
ich habe wieder  ein Access-Problem und bitte um eure Hilfe.

Es werden Artikelprüfungen durchgeführt mit Prüfergebnis „Gut“ oder „Mangelhaft“.
Die mit „Mangelhaft“ geprüften Artikel sollen nochmals geprüft und hierzu in einem Bericht gelistet werden.
Es sollen in diesem Bericht aber nur die Datensätze der neuesten Prüfungen eines Artikel einer Warengruppe angezeigt werden, sofern das Prüfergebnis „mangelhaft“ ergeben hat.

Wird bei einer Folgeprüfung zu einem späteren Datum das Prüfergebnis „Gut“ festgestellt, soll dieser Artikel in dem Bericht nicht mehr aufgeführt werden.


Ausgangslage
Artikelnr_ID
Warengruppe
Prüfdatum
Prüfergebnis


Beispiel 1:
Artikelnr_ID   1      Warengruppe 1     Prüfungsdatum   1.1.2016    Prüfergebnis   Mangelhaft
>>>Darstellung in Bericht mit dem Datensatz der Prüfung vom 1.1.2016

Beispiel 2:
Artikelnr_ID   2      Warengruppe 2     Prüfungsdatum   2.2.2015    Prüfergebnis   Mangelhaft
Artikelnr_ID   2      Warengruppe 2     Prüfungsdatum   2.2.2016    Prüfergebnis   Gut
>>>Keine Darstellung im Bericht, da letztes Prüfergebnis „Gut“ ist

Beispiel 3:
Artikelnr_ID   3      Warengruppe 3     Prüfungsdatum   3.3.2015    Prüfergebnis   Mangelhaft
Artikelnr_ID   3      Warengruppe 3     Prüfungsdatum   3.3.2016    Prüfergebnis   Mangelhaft
>>>Darstellung in Bericht mit dem Datensatz der Prüfung vom 3.3.2016

Beispiel 4:
Artikelnr_ID   4      Warengruppe 4     Prüfungsdatum   4.4.2015    Prüfergebnis   Mangelhaft
Artikelnr_ID   4      Warengruppe 4     Prüfungsdatum   4.4.2016    Prüfergebnis   Mangelhaft
Artikelnr_ID   4      Warengruppe 4     Prüfungsdatum   4.4.2017    Prüfergebnis   Gut
>>>Keine Darstellung im Bericht, da letztes Prüfungsergebnis „Gut“ war


Ich habe keine Probleme den Datensatz der letzten Prüfung oder auch der letzten Prüfung mit Prüfergebnis „Mangelhaft“ darzustellen. Mein Problem ist, wenn die spätere Prüfung „Gut“ ergibt, dass dann kein Datensatz mehr angegeben werden soll.

Wie muss hierzu die Abfrage lauten?

Ich hoffe, ich konnte mein Problem verständlich und genau genug beschreiben und hoffe jetzt auf eure Hilfe.
Besten Dank im Voraus
Hans
 

Offline Josef P.

  • Access-Profi
  • **
  • Beiträge: 289
    • Code-Bibliothek für Access-Entwickler
Hallo!

Zitat
Es werden Artikelprüfungen durchgeführt mit Prüfergebnis „Gut“ oder „Mangelhaft“.
Die mit „Mangelhaft“ geprüften Artikel sollen nochmals geprüft und hierzu in einem Bericht gelistet werden.
...
Wird bei einer Folgeprüfung zu einem späteren Datum das Prüfergebnis „Gut“ festgestellt, soll dieser Artikel in dem Bericht nicht mehr aufgeführt werden.
Wenn ich das richtig verstehe, wird nicht ein Artikel nicht mehr geprüft, wenn das Prüfergebnis "Gut" war.
Somit könnte eventuell als Bedingung ausreichen, dass vom Artikel keine Gut-Prüfung vorhanden ist. Das würde das Kriterium "letzte Prüfung" vermeiden, welche zwar machbar ist, aber eventuell etwas mehr Laufzeit benötigen wird.

Zitat
Ich habe keine Probleme den Datensatz der letzten Prüfung oder auch der letzten Prüfung mit Prüfergebnis „Mangelhaft“ darzustellen. Mein Problem ist, wenn die spätere Prüfung „Gut“ ergibt, dass dann kein Datensatz mehr angegeben werden soll.
Wenn du die Datensätze ermitteln kannst, die als letzte Prüfung "mangelhaft" enthalten, dann sind jene bereits ausgeschlossen, deren letzte Prüfung "gut" ist.
Du hast somit bereits die fertige Lösung, da du kein Problem hast, die Datensätze mit der letzten Prüfung mit Ergebnis Mangelhaft herauszufiltern. ;)


Trotzdem noch SQL-Anweisungen:

Bedingung: Es gibt nur mangelhafte Prüfungen zum Artikel
select
   A.Artikelnr_ID, Max(Prüfdatum) as LetztesPruefdatum
from
   ArtikelPruefTabelle A
where
   A.Prüfergebnis = 'Mangelhaft'
   and
   not exists (select * from Artikeltabelle  Ax where Ax.Artikelnr_ID = A.Artikelnr_ID and Ax.Prüfergebnis = 'Gut')
group by
   A.Artikelnr_ID
   


Bedingung: letzte Prüfung ist mangelhaft
select
   A.*
from
   (
       select Artikelnr_ID, Max(Prüfdatum) as LetztesPruefdatum
       from ArtikelPruefTabelle
       group by Artikelnr_ID
   ) LP
   inner join
   Artikeltabelle A ON A.Artikelnr_ID = LP.Artikelnr_ID and A.Prüfdatum = LP.LetztesPruefdatum
where
   A.Prüfergebnis = 'Mangelhaft'

Anm.: ich gehe davon aus, dass Artikelnr_ID zur Lieferware (inkl Seriennummer oder Charge) gehört und nicht die Kennung vom Teilestamm ist.

mfg
Josef
« Letzte Änderung: Januar 27, 2019, 11:57:57 von Josef P. »
 

Offline Accessoraner

  • Newbie
  • Beiträge: 18
Hallo Josef,
vielen Dank für deine schnelle Antwort.
Leider komm ich noch nicht so ganz weiter, siehe meine Anmerkungen zu deinen Zitaten.

Vielleicht kannst du bitte nochmals darüber schauen.
Vielen Dank
Hans
__________________


Hallo!

Zitat
Es werden Artikelprüfungen durchgeführt mit Prüfergebnis „Gut“ oder „Mangelhaft“.
Die mit „Mangelhaft“ geprüften Artikel sollen nochmals geprüft und hierzu in einem Bericht gelistet werden.
...
Wird bei einer Folgeprüfung zu einem späteren Datum das Prüfergebnis „Gut“ festgestellt, soll dieser Artikel in dem Bericht nicht mehr aufgeführt werden.
Wenn ich das richtig verstehe, wird nicht ein Artikel nicht mehr geprüft, wenn das Prüfergebnis "Gut" war.
Somit könnte eventuell als Bedingung ausreichen, dass vom Artikel keine Gut-Prüfung vorhanden ist. Das würde das Kriterium "letzte Prüfung" vermeiden, welche zwar machbar ist, aber eventuell etwas mehr Laufzeit benötigen wird.

Ergänzung: Die Artikel werden jährlich laufend geprüft. Es kann im Jahr 2015 mit "Gut" geprüft worden sein, dann wird er routinemäßig wieder in einem Jahr (2016) geprüft, falls "Mangelhaft" erfolgt eine Sonderprüfung in einem kürzeren Abstand. Die Bedingung "Keine Gut-Prüfung" funktioniert somit leider nicht.
Es muss auf die "letzte Prüfung" geprüft werden und ob deren Ergebnis "Gut" oder "Mangelhaft" ist. Die Laufzeit spielt keine Rolle, da es nur einige wenige Tausend Artikel sind.

Zitat
Ich habe keine Probleme den Datensatz der letzten Prüfung oder auch der letzten Prüfung mit Prüfergebnis „Mangelhaft“ darzustellen. Mein Problem ist, wenn die spätere Prüfung „Gut“ ergibt, dass dann kein Datensatz mehr angegeben werden soll.
Wenn du die Datensätze ermitteln kannst, die als letzte Prüfung "mangelhaft" enthalten, dann sind jene bereits ausgeschlossen, deren letzte Prüfung "gut" ist.
Du hast somit bereits die fertige Lösung, da du kein Problem hast, die Datensätze mit der letzten Prüfung mit Ergebnis Mangelhaft herauszufiltern. ;)

Ergänzung: Das habe ich vielleicht missverständlich ausgedrückt. Ich kann zwar die letzte "mangelhafte" Prüfung herausfiltern, aber eben nicht, ob die letzte Prüfung "Mangelhaft" war. Das ist mein Problem. Wenn ich feststellen könnte, dass die Prüfung mit dem letzten Prüfungsdatum "Gut" ist, dann sollte mein Problem gelöst sein. 


Trotzdem noch SQL-Anweisungen:

Bedingung: Es gibt nur mangelhafte Prüfungen zum Artikel
select
   A.Artikelnr_ID, Max(Prüfdatum) as LetztesPruefdatum
from
   ArtikelPruefTabelle A
where
   A.Prüfergebnis = 'Mangelhaft'
   and
   not exists (select * from Artikeltabelle  Ax where Ax.Artikelnr_ID = A.Artikelnr_ID and Ax.Prüfergebnis = 'Gut')
group by
   A.Artikelnr_ID
   


Bedingung: letzte Prüfung ist mangelhaft
select
   A.*
from
   (
       select Artikelnr_ID, Max(Prüfdatum) as LetztesPruefdatum
       from ArtikelPruefTabelle
       group by Artikelnr_ID
   ) LP
   inner join
   Artikeltabelle A ON A.Artikelnr_ID = LP.Artikelnr_ID and A.Prüfdatum = LP.LetztesPruefdatum
where
   A.Prüfergebnis = 'Mangelhaft'

Anm.: ich gehe davon aus, dass Artikelnr_ID zur Lieferware (inkl Seriennummer oder Charge) gehört und nicht die Kennung vom Teilestamm ist.

mfg
Josef
 

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2149
Hallo Hans,
Zitat
aber eben nicht, ob die letzte Prüfung "Mangelhaft" war.
Wieso nicht? Josefs zweite Abfrage zeigt doch genau das; - alle letzten
Prüftermine, die als Ergebnis "mangelhaft" ausweisen.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Accessoraner

  • Newbie
  • Beiträge: 18
Danke Ekkehard,

wenn die Abfrage stimmt, dann muss ich noch irgendwo einen Fehler eingebaut haben.
Ich werde es nochmals sorgfältig probieren.

Vorab schon mal besten Dank an "Alle"
Hans
 

Offline Josef P.

  • Access-Profi
  • **
  • Beiträge: 289
    • Code-Bibliothek für Access-Entwickler
Die Logik sollte passten - statt ArtikelTabelle  muss aber ArtikelPruefTabelle  stehen.

select
   A.*
from
   (
       select Artikelnr_ID, Max(Prüfdatum) as LetztesPruefdatum
       from ArtikelPruefTabelle
       group by Artikelnr_ID
   ) LP
   inner join
   ArtikelPruefTabelle A ON A.Artikelnr_ID = LP.Artikelnr_ID
                   and A.Prüfdatum = LP.LetztesPruefdatum
where
   A.Prüfergebnis = 'Mangelhaft'

mfg
Josef

Offline Accessoraner

  • Newbie
  • Beiträge: 18
Hallo zusammen,

ja jetzt funktioniert es wie angedacht (der Fehler lag bei mir) - nochmals besten Dank

Nochmals vielen Dank für die gute Hilfe
Hans
« Letzte Änderung: Februar 02, 2019, 18:37:30 von Accessoraner »
 

 

Automatische Anzeige mit DomWert

Begonnen von Magixg23Board Formular

Antworten: 3
Aufrufe: 6124
Letzter Beitrag September 02, 2010, 10:32:19
von database
Keine Anzeige von negativen Gehältern -->Anzeige als Null?

Begonnen von MakBoard Tabelle/Abfrage

Antworten: 5
Aufrufe: 2894
Letzter Beitrag Oktober 03, 2010, 16:45:38
von oma
Formatierte Prozentuale Anzeige eines Tabellenfeldes ohne Komma

Begonnen von OptiplexBoard Tabelle/Abfrage

Antworten: 11
Aufrufe: 5858
Letzter Beitrag November 20, 2010, 15:01:11
von Optiplex
Anzeige von Bildern aus einem Formularfeld Hyperlink ohne Internet-Explorer

Begonnen von pilzpeterBoard Formular

Antworten: 2
Aufrufe: 4636
Letzter Beitrag November 26, 2010, 07:41:57
von bahasu
Kombinationsfeld - Anzeige mehrere Spalten

Begonnen von cyberchrisBoard Formular

Antworten: 12
Aufrufe: 22596
Letzter Beitrag Januar 13, 2011, 18:23:41
von cyberchris