collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 67
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 5
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13804
  • stats Beiträge insgesamt: 63512
  • stats Themen insgesamt: 8606
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Anzahl summiert aus zwei Spalten  (Gelesen 187 mal)

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Anzahl summiert aus zwei Spalten
« am: Dezember 05, 2017, 10:40:30 »
Hallo Leute,

ich habe folgende Problematik:

In einer Datentabelle sind den Datensätzen unter vielen anderen auch zwei Spalten mit Eigenschaft 1 und Eigenschaft 2 zugeordnet. Diese beziehen ihre möglichen Werte aus dem selben Pool, nur kann halt einem Datensatz bis zu zwei Eigenschaften zugeordnet werden.

Mit einer Abfrage sollen diese Eigenschaften nun ausgezählt werden und bestenfalls noch nach einer dritten Spalte sortiert werden.

Also genauer: Access soll die Anzahl der Eigenschaften aus beiden Spalten auszählen, ohne zu schauen, ob Werte gleich sind oder eine Beziehung haben (Sprich so auszählen, als ob es aus einer Spalte wäre.) Gruppiere diese Summen und Eigenschaften nach verschiedenen Standorten.

Beispiel:
Standort       Eigenschaft 1          Eigenschaft 2
A                  grün                       blau
B                  gelb                       grün
A                  blau                       grün
C                  rot                         gelb
C                  grün                       rot

Ergebnis:

       grün     blau     gelb     rot
A       2           2          0       0

B       1           0          1       0

C       1           0           1       2

Ich hoffe alles, ist verständlich :D Am besten wäre, alles ohne Code zu machen, sofern möglich.

Vielen Dank und beste Grüße

BananaDealer
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Anzahl summiert aus zwei Spalten
« Antwort #1 am: Dezember 05, 2017, 11:26:48 »
Hallo,
die beste Lösung wäre die Tabelle umzubauen (normalisiert). So sollte das aussehen:
Standort       Eigenschaft 
A                  grün                       
A                  blau
B                  gelb                       
B                  grün
A                  blau                       
A                  grün
C                  rot                         
C                  gelb
C                  grün                       
C                  rot

Das wäre dann der für eine Datenbank korrekte Aufbau.
Dann wäre Dein Vorhaben ein Kinderspiel und die gewünschte Darstellung lässt sich über eine Kreuztabellenabfrage erreichen. Ohne VBA Code.

PS:
Diese erfundenen abstrakten Beispiele gehen meist an der Realität vorbei und erfordern oft mehr Rückfragen, weil dann nach auf dem Beispiel beruhenden Vorschlägen ein Ja, aber .... kommt.
Gruß
Klaus
 

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Re: Anzahl summiert aus zwei Spalten
« Antwort #2 am: Dezember 05, 2017, 11:35:22 »
Hallo Klaus,

leider ist dies nicht möglich. Es wird eine Datentabelle aus Excel importiert, die unter ca. zehn anderen die besagten zwei Spalten besitzt. Diese zwei Spalten zeichnen bis zu zwei verschiedene Eigenschaften (genauer sind es Fehlerschwerpunkte, aber eigentlich unerheblich) aus, welche nicht zu einer Spalte zusammengefasst werden können. Diese beiden Spalten werden aber aus ein und derselben Background Tabelle gefüttert (diese ist eine andere Datei und verknüpft; quasi eine Basistabelle mit allen möglichen Fehlerschwerpunkten) und besitzen den gleichen Pool an möglichen Werten. Nun soll eine Abfrage durch diese beide Spalten gehen und die Anzahl der Fehlerschwerpunkte gruppiert ausgeben.

Ich hoffe, das macht es deutlicher.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Anzahl summiert aus zwei Spalten
« Antwort #3 am: Dezember 05, 2017, 11:38:51 »
Hallo,
der gezeigte Aufbau muss für Dein Vorhaben sein. Access erfordert einen normalisierten Aufbau der Tabelle. Verlinke die Exceltabelle und importiere die Daten mit 2 Anfügeabfragen in die vorgefertigte Accesstabelle obiger Struktur.

Die Alternative wäre mit einer Unionabfrage diese Struktur zu erzeugen und auf die Union dann die Kreuztabellenabfrage aufzubauen. Aber das halte ich für noch aufwendiger.

Wahrscheinlich ist aber noch mehr Aufwand notwendig, denn die verbleibenden restlichen 8 Felder müssen auch noch mindestens in eine weitere Tabelle überführt werden.
Gruß
Klaus
 

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Re: Anzahl summiert aus zwei Spalten
« Antwort #4 am: Dezember 05, 2017, 11:44:46 »
Hallo,
das Problem ist, dass pro Datensatz eine Vorgangsnummer vergeben wurde. Diesem Vorgang können, sofern er fehlerhaft war, bis zu zwei Fehlerpunkte zugeordnet werden. Bspw. eine falsche Adressierung und eine zu späte Bearbeitung. Beide Fehler werden separat eingetragen (in die zwei Spalten). Normalisiert man die Tabelle nach deiner Idee, hätte ich für diesen Vorgang zwei Datensätze, welche sich nur in den Fehlerpunkten unterscheiden. Für den logischen Aufbau im System ist aber nur ein Datensatz pro Vorgang zwingend notwendig.

Gibt es da keine Möglichkeit? Ich habe irgendwas mit dem UNION Befehl im Hinterkopf. Leider ist diesbezüglich alles nur sehr wage.

Danke und Grüße
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Anzahl summiert aus zwei Spalten
« Antwort #5 am: Dezember 05, 2017, 11:53:39 »
Hallo,
UNION hatte ich ja schon erwähnt, aber auch dann entstehen 2 Datensätze für je Vorgang.

Zitat
Für den logischen Aufbau im System ist aber nur ein Datensatz pro Vorgang zwingend notwendig.
Das ist ein Trugschluss. In der erwähnten Kreuztabelle siehst Du nur einen Vorgang.

Übrigens, wie ich es bereits angedeutet habe wird auch für den eigentlichen Vorgang eine Tabelle benötigt.

Du darfst Access nicht mit Excel vergleichen. Access erfordert einen völlig anderen Aufbau der Tabellen. Man in den seltensten Fällen eine Exceltabelle direkt in Access verwenden.


Gruß
Klaus
 

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Re: Anzahl summiert aus zwei Spalten
« Antwort #6 am: Dezember 05, 2017, 12:01:48 »
Vielen Dank schon einmal für deine Mühe!
Der Aufbau der Tabelle ist für Access leider wirklich unpraktisch. Nur leider kann ich an diesem wirklich nichts ändern. Der selbe Vorgang darf nicht als doppelter Datensatz eingetragen werden, sonst meckert das System an anderer Stelle.

Hättest du eine Idee, wie ich eine einfache Union-Abfrage mache, in der mir nur die Fehlerpunkte und Anzahl ausgegeben wird, ausgelesen aus den beiden Spalten?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Anzahl summiert aus zwei Spalten
« Antwort #7 am: Dezember 05, 2017, 12:07:01 »
Hallo,
die Union macht auch diese doppelten Vorgänge.
Aber das spielt doch keine Rolle. Du brauchst doch diese Tabelle nur für die Auswertung.

Zitat
sonst meckert das System an anderer Stelle
welches System ist das, das da meckert ?
Gruß
Klaus
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 854
Re: Anzahl summiert aus zwei Spalten
« Antwort #8 am: Dezember 05, 2017, 12:16:25 »
Hier ist ein funktionierender Fiddle.

PS: Es mag sein, dass Access keine Kreuztabellenabfrage basierend auf einer Vereinigungsabfrage mag. Dann muß man halt das Ergebnis der Vereinigungsabfrage zwischenspeichern (z. Bsp. als Text exportieren und verknüpfen).
Grüße von der (⌒▽⌒)
 

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Re: Anzahl summiert aus zwei Spalten
« Antwort #9 am: Dezember 05, 2017, 12:19:35 »
Kann ich in SQL nicht festlegen, zähle die Werte über zwei Spalten? Dann müsste ich auch keinen Abfragen über UNION machen. In Excel-VBA wäre dass dann einfach quasi Zählen in Range Spalte A bis Spalte B. Das muss doch in Access auch gehen.

Das Problem ist die Weiterbearbeitung der Daten. Sind mehrere Datensätze mit gleichem Datum und Vorgangsnummer, müssen alle bis auf einer davon rausfliegen (Thema Redundanz und Verifizierbarkeit von Stichproben; sind auf Basis von Vorgängen und nicht auf Basis der Fehler). Dabei würde dann der eine Fehlerschwerpunkt verloren gehen. Man könnte natürlich eine Rückführung der Fehler in einen Datensatz anstreben. Weniger Arbeit hat man dann im Endeffekt aber auch nicht.
 

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Re: Anzahl summiert aus zwei Spalten
« Antwort #10 am: Dezember 05, 2017, 12:22:44 »
Hier ist ein funktionierender Fiddle.

PS: Es mag sein, dass Access keine Kreuztabellenabfrage basierend auf einer Vereinigungsabfrage mag. Dann muß man halt das Ergebnis der Vereinigungsabfrage zwischenspeichern (z. Bsp. als Text exportieren und verknüpfen).

Danke für diese Idee! Ich werde mal schauen, ob es umsetzbar ist. Das Beispiel aus dem Thread ist natürlich deutlich abgespeckt. Eigenschaften gibt es um die 50 und "Standorte" sind stellvertretend für 10 verschiedene Möglichkeiten die wieder 3 Mal unterteilt werden können, also 30.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Anzahl summiert aus zwei Spalten
« Antwort #11 am: Dezember 05, 2017, 12:31:01 »
Hallo,
Zitat
Das Beispiel aus dem Thread ist natürlich deutlich abgespeckt. Eigenschaften gibt es um die 50 und "Standorte" sind stellvertretend für 10 verschiedene Möglichkeiten die wieder 3 Mal unterteilt werden können, also 30.
Habe ich es nicht gesagt, völlig sinnloses Beispiel, das an der Realität vorbei geht.
Ich darf mich zitieren:
Zitat
Diese erfundenen abstrakten Beispiele gehen meist an der Realität vorbei und erfordern oft mehr Rückfragen, weil dann nach auf dem Beispiel beruhenden Vorschlägen ein Ja, aber .... kommt.
Hier wirst Du um eine gründliche Umstrukturierung nach den Regeln der Normalisierung nicht herumkommen.
Gruß
Klaus
 

Offline BananaDealer

  • Newbie
  • Beiträge: 41
Re: Anzahl summiert aus zwei Spalten
« Antwort #12 am: Dezember 05, 2017, 12:35:08 »
Ich wollte mit diesem Beispiel nur mein Ziel der Abfrage verdeutlichen und nicht die eigentliche Datenbankstruktur der Realität zeigen. Grund dafür war, dass ich in dem Glauben war, unabhängig von der Struktur, eine einfache Abfrage des Zählens über nicht eine, sondern zwei Spalten erwirken zu können. Etwas blauäugig ::)
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 854
Re: Anzahl summiert aus zwei Spalten
« Antwort #13 am: Dezember 05, 2017, 12:38:45 »
Du hast Murks in der Datenbank vorliegen. Wenn mein richtiges und wichtiges Excel-Sheet in Stein gemeißelt ist, heißt das nicht, dass ich auch in der selben Datenform in Access mit einem Import des Selben arbeiten muss. Ohne Normalisierung wird die Datenbank keinen Spaß machen (auch in Hinsicht bzgl. Ablaufgeschwindigkeiten). Soll nach erfolgter Datenver- oder Datenbearbeitung in der DB wieder etwas in das Excel-Sheet zurückfließen, lässt sich jederzeit die Ursprungsform wieder herstellen.

PS: meine bisherigen, aber schon etwas länger zurückliegenden Versuche mit Vereinigungsabfragen haben gezeigt, dass bei etwas weniger als 50 Vereinigungen in einer Abfrage Schluß war. D.h., dass Du ggf. mehrstufig die Eigenschaften zusammenführen musst.
Grüße von der (⌒▽⌒)
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Anzahl summiert aus zwei Spalten
« Antwort #14 am: Dezember 05, 2017, 13:45:18 »
Hallo,
Zitat
Etwas blauäugig
etwas blauäugig ist gut. Das war wissentlich falsch. Mehrfach(!) behaupten es wären nur 2 Spalten und am Schluss sind es um die 50 und das auch noch in Gruppen, was ist da noch realitätsbezogen?
Um das mit Access als Kreuztabellenabfrage darstellen zu können, braucht es eine Tabelle mit 50*10*3=1500 Datensätzen.
Gruß
Klaus