Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Labor am März 22, 2023, 13:56:05

Titel: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am März 22, 2023, 13:56:05
Hallo, ich muss in einer Abfrage Werte innerhalb einer Spalte auswerten und in einer neuen Tabelle/Abfrage anzeigen.
Beispiel: 5 Temperaturfühler mit je einem Messwert
Abfrage
NR  Messwert
1   100,02
2   100,05
3   100,00
4   100,07
5   100,15 

es können bis zu 50 Fühler sein. Nun müssen alle Fühler mit einer Anweichung +- 0,02 gepaart werden.
Das Ergebnis wäre
Paar 1 NR 1+3
Paar 2 NR 2+4

Kann mir jemand helfen?
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: ebs17 am März 22, 2023, 14:12:06
SELECT
   T1.ID,
   T1.Messwert,
   T2.Messwert
FROM
   TableX AS T1,
   TableX AS T2
WHERE
   T1.ID < T2.ID
      AND
   Abs(T1.Messwert - T2.Messwert) <= 0.02
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am März 22, 2023, 15:45:07
Hallo Eberhard,

ich komme leider mit dem Code nicht klar.
Ich habe nur eine Spalte NR und eine Spalte Messwerte in meiner Abfrage. Basis ist meine Tabelle Messwerte.
Ich habe kein T1 oder T2.

Gruß
Frank
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: MzKlMu am März 22, 2023, 16:06:37
Hallo,
T1 und T2 sind Aliasnamen Deiner einen Tabelle.
Ersetze Tabellen- und Feldnamen durch die bei Dir vorhanden Namen.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am März 22, 2023, 16:57:25
Hallo Klaus, so sieht mein Ergebnis aus. Nich brauchbar.

PA        T1.Nr   T1.Prüf_A   T2.Nr   T2.Prüf_A
225240/10   2   138,05   4   138,05
225240/10   1   137,96   5   137,95
225240/10   1   137,96   6   137,95
225240/10   5   137,95   6   137,95
225240/10   1   137,96   8   137,97
225240/10   11   137,87   14   137,86
225240/10   2   138,05   16   138,05
225240/10   4   138,05   16   138,05
225240/10   9   138,31   17   138,31
225240/10   1   137,96   18   137,98
225240/10   8   137,97   18   137,98
Jeder Fühler(Nr) darf nur einmal erscheinen, im besten Fall sind es 9 Fühler-Paare

Gruß
Frank
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am März 22, 2023, 20:57:04
Nachtrag.

So muss es aussehen:
PA        T1.Nr T1.Prüf_A   T2.Nr   T2.Prüf_A

225240/10   17  138,31      9   138,31
225240/10   3   138,26      12  138,13
225240/10   13  138,11      2   138,05
225240/10   16  138,05      5   138,05
225240/10   18  137,98      8   137,97
225240/10   1   137,96      6   137,95
225240/10   10  137,92      11  137,87
225240/10   14  137,89      4   137,85
225240/10   20  137,80      19  137,76
225240/10   21  137,44      15  137,40

Gruß
Frank



Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: ebs17 am März 22, 2023, 21:08:01
ZitatSo muss es aussehen:
Bei sechs von 10 Paaren ist die Differenz größer 0,02.
Das ist eine überzeugende Umsetzung der eigenen Vorgabe.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am März 23, 2023, 07:10:28
Mein Fehler, habe die Werte per Hand zusammengestellt, aber in der Form sollte das Ergebnis sein.
Gruß
Frank
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: markusxy am März 23, 2023, 08:46:08
Zitat von: Labor am März 22, 2023, 16:57:25eder Fühler(Nr) darf nur einmal erscheinen


Vielleicht erklärst du auch die Hintergründe etwas.
Was ist wenn sich mit einem Wert verschiedene Paare bilden lassen - nach welcher Logik soll dann vorgegangen werden?

Du solltest die Angelegenheit erstmal durchdenken bevor es mit dem Programmieren losgeht und nicht erst am Schuss mit weiteren Bedingungen daherkommen.  ;)
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: ebs17 am März 23, 2023, 09:27:56
Die "nicht brauchbare" Abfrage liefert die Paare mit der geforderten Maximalabweichung, alle Paare, die damit denkbar sind - was nebenbei Prinzip von SQL (Massendatenverarbeitung) ist.

Aus diesen kannst Du nun entsprechend Deinen unbekannten Kriterien die gewünschten auswählen. Bei Fühler 1 bis 18 hast Du sichtbar nur noch aus 11 Paaren statt aus rechnerisch möglichen 153 auszuwählen. Mancher würde das als Fortschritt bezeichnen.
Bei 50 hätte man 1225 rechnerische Paare.

Da die konkreten Kriterien noch nicht vernehmbar formuliert sind, recht wahrscheinlich noch nicht einmal im eigenen Kopf klar sind, sollte die Hoffnung nicht sehr groß sein, dass Du eine Lösung vorgelegt bekommst, wie Du sie Dir vorstellst. Der Vergleich mit unbekannt gibt unbekannt.

Beantworte im Gegenzug die Frage nach Brauchbarkeit Deiner Aufgabenformulierung.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am März 23, 2023, 18:08:18
Ganz einfach, die beiden hösten Werte von zwei Fühlern bei den die Abweichnung <0,02 ist, bilden ein Paar.
Danach die beiden nächste Fühler usw.
Deswegen wäre es gut, wenn das erste Paar aus der Liste in einen neue Tabelle verschoben wird.

Gruß
Frank
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: markusxy am März 24, 2023, 08:13:49
Zitat von: Labor am März 23, 2023, 18:08:18Ganz einfach

Na dann könntest du ja auch eine ganz Einfache Lösung umsetzen.
Ein zusätzliches Feld für die Paarungen erstellen.
Recordset sortiert öffnen und per VBA die Paarungen bilden.
Die Logik ist da trivial du vergleichst einfach die Elemente nach ihrer Reihenfolge und wenn die Abstände passen machst du ein Paar draus.
Wenn da mehr als 20000 Paarungen sein, kann man danach auch über eine effizientere Lösung nachdenken.
Erstmal solltest du aber mal überhaupt etwas umsetzen.

Solltest du es nicht schaffen, dann zeig zumindest deinen Versuch.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am April 24, 2023, 14:23:05
Hallo, hatte leider keinen Zeit mich damit zu beschäftigen.
Ich habe eine funktionierende Abfrage in einem Formular.

Paarung1-Unterformular
PA       T1.Prüf_A   T2.Nr   T2.Prüf_A  T1.Nr diff
225240/10   138,31   17   138,31       9    0,00
225240/10   138,05   16   138,05       5    0,00
225240/10   138,05   16   138,05       2    0,00
225240/10   138,05   5   138,05       2    0,00
225240/10   137,97   18   137,98       8   -0,01
225240/10   137,96   8   137,97       1   -0,01
225240/10   137,96   6   137,95       1    0,01
225240/10   137,96   18   137,98       1   -0,02
225240/10   137,87   14   137,86      11    0,01
225240/10   137,85   14   137,86       4   -0,01
225240/10   137,85   11   137,87       4   -0,02

Nun möchte ich die erste Zeile in die Tabelle TabPaarung kopieren und diese kopierte Zeile aus der Abfrage bzw. dazu gehörigen Tabelle löschen. Damit verschwinde auch die noch möglichen doppelten Kombinationen.
Wenn ich das ganze manuel mache geht es natürliche. Ziel ist es aber, per Button im Formular es automatisch durchlaufen zu lassen. Ich finde hier leider keinen Ansatz. Könnt  Ihr mir helfen.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: ebs17 am April 24, 2023, 14:55:41
Grundlagen - SQL ist leicht (23) - Bedingte Zweierkombinationen mit einmaligen Elementen bilden (https://www.ms-office-forum.net/forum/showthread.php?t=385196)

ZitatIch habe eine funktionierende Abfrage
Womöglich wäre es ratsam, diesen Deinen zauberhaften Einfall auch öffentlich zu zeigen.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am April 25, 2023, 10:35:44
Hallo Eberhard, super das Du meine Aufgabenstellung in "Grundlagen-SQL ist leicht" übernommen hast.
Ich habe nun nur das Problem mit dem VBA Code. Wenn ich die 2. Abfrage öffne bekomme ich die Fehlermeldung
"..das Datenbankmodul findet die Eingabetabelle oder Abfrage "tmptSelection" nicht....". Wird der VBA Code automatisch aufgerufen oder muss ich den noch irgendwie aktinvieren?

Gruß
Frank 
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: ebs17 am April 25, 2023, 14:10:24
Zitatfindet die Eingabetabelle ... "tmptSelection" nicht....
Die Tabelle tmptSelection muss selbst und einmalig angelegt werden. Dann wird sie auch gefunden.
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am April 25, 2023, 14:28:43
Hallo Eberhard,
bin ich auch schon drauf gekommen, welche Felder muss ich dort eintragen? Nur IDX und ID?

Gruß
Frank
Titel: Re: Abweichung innerhalb einer Spalte ermitteln
Beitrag von: Labor am April 27, 2023, 11:01:15
Hallo Eberhard, erstmal ein Kompliement für Deinen "SQL ist leicht" Beiträge. Die sind super erklärt und mit den Beispielen kann man viele lernen!!
Die Abfrage funktioniert!!
Danke.
Gruß
Frank