Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Mehrere Werte aus Spalten "addieren"

Begonnen von astis, Juni 23, 2014, 13:10:26

⏪ vorheriges - nächstes ⏩

astis

Hallo, ich hoffe mir gelingt es den Sachverhalt darzustellen.
Ich habe mehrere Listen mit Kundendaten. Einheitlich ist immer die Kundennummer.
Wenn ich nun die Listen per Abfrage zusammenführe erhalte ich eine Tabelle in der
der Kunde mehrfach auftaucht. Also zB eine Zeile mit dem Wert aus Tabelle 1 eine für den Wert aus Tabelle 2 etc. 
Das Ergebnis ist soweit in Ordnung da ich nun alles in einer Tabelle habe. Lieb wäre mir aber wenn ich die
Doppelten Werte so gestallte dass ich am Ende nur eine Zeile aber mit den 3 Werten habe...
Beispiel:
so ist es derzeit
Herr Müller - Rot
Herr Müller - Auto
Herr Müller - Ledig
und so soll es aussehen:
Herr Müller - Rot - Auto - Ledig
:-[

Verständlich ? Hat jemand eine Rat ?

MaggieMay

Hallo,
ZitatWenn ich nun die Listen per Abfrage zusammenführe
die Frage ist, wie machst du das?

Normalerweise würde man die Tabellen miteinander verknüpfen und so einen Datensatz pro Kunde erzeugen.
Etwas schwieriger wird es, wenn nicht jede Tabelle einen Datensaz zu jedem Kunden enthält.
Beschreibe also die Ausgangslage bitte noch etwas genauer, damit man sich keine unnötigen Gedanken machen muss. ;)
Freundliche Grüße
MaggieMay

astis

Hallo, leider habe ich vergessen zu erwähnen, dass nicht jeder Kunde in jeder Tabelle vorkommt. Es kann also sein das ein Kunde mal in allen drei Tabellen steht, ein anderer nur in einer...

MaggieMay

Dann hätte ich folgenden Vorschlag für dich: führe die Daten aus den drei Tabellen mit einer Union-Abfrage zusammen, aber so, dass die Informationen in separaten Spalten landen.

Beispiel:Select k_nr, feld1 As farbe, Null As fahrzeug, Null As famstand From tabelle1
Union
Select k_nr, Null, feld2, Null From tabelle2
Union
Select k_nr, Null, Null, feld3 From tabelle3
und "komprimiere" das Ergebnis der Abfrage folgendermaßen:Select k_nr, Max(farbe) As tFarbe, Max(fahrzeug) As tFahrzeug, Max(famstand) As tFamStand
From abfrage
Group By k_nr
Freundliche Grüße
MaggieMay

astis

hmmm geht leider nicht... kommt zu ner Fehlermeldung "Syntaxfehler in Abfragegrund"... naja scheint doch nicht so einfach zu sein wie ich erhofft habe...

MzKlMu

#5
Hallo,
der Vorschlag von MaggieMay sind 2 (zwei) Abfragen, die Unionabfrage und die zusammenfassende Abfrage die die Union als Basis hat. Hast Du das beachtet?

Es stellt sich die auch Frage warum das überhaupt verschieden Tabellen sind?
ZitatWenn ich nun die Listen per Abfrage zusammenführe erhalte ich eine Tabelle in der der Kunde mehrfach auftaucht.
Wie sieht dann diese Abfrage aus?
Gruß Klaus

MaggieMay

Zitat von: astis am Juni 23, 2014, 21:57:07
hmmm geht leider nicht... kommt zu ner Fehlermeldung "Syntaxfehler in Abfragegrund"... naja scheint doch nicht so einfach zu sein wie ich erhofft habe...
Was bitte ist ein "Abfragegrund"?

Zeig doch mal deine Version des Abfragecodes, dann wird sich das schon klären lassen.
Freundliche Grüße
MaggieMay

astis

Hallo und vielen Dank dass ihr so hilfsbereit seid. Wie gesagt ist ehr Excel mein Ding und in Access fehlt sicherlich noch an einigen stellen. VIelleicht war es nicht klug das mit den Farben und Autos etc. als Beispiel zu benennen. Ich machs mal an konkreten Daten fest: So sieht jetzt das Ergebnis der Abfrage aus:
KDR  Name           Vertrag
1231 Armin Müller Unfallversicherung
1231 Armin Müller Haftpflichtversicerung
1231 Armin Müller Hausratversicherung
1232 Doris Schneider Hausratversicherung
1233 Alois Bauer Unfall Versicherung
1233 Alois Bauer Lebensversicherung

und so solls werden :
KDR  Name                Vertrag                    Vertrag 2                    Vertrag 3
1231 Armin Müller      Unfallversicherung     Haftpflichtversicerung  Hausratversicherung
1232 Doris Schneider Hausratversicherung 
1233 Alois Bauer        Unfallversicherung     Lebensversicherung

Leider weiss ich nochnichtmal wie der "Fachbegriff" für diese Aktion heisst... somit kann ich noch nichtmal gezielt in google oder so danach suchen :-(

MaggieMay

#8
Hi,

es wäre dennoch nicht verkehrt, wenn du deinen Abfragecode dazu zeigst, dann kann man dir erklären, warum er nicht funktioniert. Wenn man dir eine fertige Lösung präsentiert, ist der Lerneffekt evtl. geringer.

Möglichewrweise käme hier auch eine Kreuztabellenabfrage in Frage, dann bist du nicht auf drei Verträge beschränkt, was ja wohl wenig realistisch ist.
Freundliche Grüße
MaggieMay

astis

#9
Hallo ich habe den Code wie folgt angepasst... also das der mit den Daten der Original Tabelle übereinstimmt.
Das mit der Kreuztabelle habe ich auch schon ausprobiert aber wie gesagt das Gruppiert der mir das wie in Excel
eben so ähnlich
1231 Armin Müller Unfallversicherung
                            Haftpflichtversicerung
                            Hausratversicherung

Wäre eben ideal wenn die Daten wie besschrieben nicht mehr untereinander sondern nebeneinander stehen.
Wie auch immer ist es mir gelungen zumindest die Daten jetzt alle in einer Tabelle zu haben eben im beschriebenen
Format. Besteht Grund zu Hoffnung oder ehr aussichtslos ? :-\


Select KNR, feld1 As Komfort-RS, Null As Aktion Unfall-Vital, Null As Aktion Verkehrs RS From KomfortRS
Union
Select KNR, Null, feld2, Null From Unfall Vital
Union
Select KNR, Null, Null, feld3 From Verkehrs-RS

MaggieMay

Mit den ganzen Sonder- und Leerzeichen in Tabellen- und Feldnamen kann das nichts werden, darauf solltest du verzichten - oder die Bezeichnungen in eckige Klammern setzen.
Ansonsten wäre es schön, wenn Beispieldaten und Beispielcode zueinander passen würden, sonst macht es wenig Sinn, weitere Lösungsvorschläge zu machen.

Wie sieht es denn aus mit der Frage nach der Anzahl der Verträge pro Kunde? Ist es nicht eine arge Einschränklung, diese auf max. drei einzuschränken? Und was sagst du zu dem Vorschlag mit der Kreuztabellenabfrage?
Das Ergebnis könnte dann bspw. so aussehen:
KDR  Name                Haftpflichtversicherung Hausratversicherung Lebensversicherung Unfallversicherung     
1231 Armin Müller                Ja                            Ja                             Nein                   Ja
1232 Doris Schneider          Nein                           Ja                             Nein                  Nein
1233 Alois Bauer                Nein                          Nein                             Ja                     Ja
Freundliche Grüße
MaggieMay

astis

Also du hast recht, die Anzahl der Verträge einzuschränken bringt nichts weil der eine Kunde 4 der andere 2 der andere 8 haben kann. Das mit der Kreuztabelle habe ich versucht, allerdings komme ich da auch nicht an das Ziel dass die Verträge nebeneinander statt untereinander stehen. Vielleicht bin ich falsch vorgegangen?
Über Formular / erweitert / habe ich Pivot gefunden... und dann die Felder entsprechend rüber gezogen Ergebnis:
1231 Armin Müller Unfallversicherung
                            Haftpflichtversicerung
                            Hausratversicherung

MzKlMu

Hallo,
kein Formular, sondern eine Kreuztabellenabfrage. Da gibt es einen Assistenten dazu.

Die Frage warum das überhaupt verschieden Tabellen je Kunde sind hast Du auch nicht beantwortet.
Gruß Klaus

astis

Die Tabellen ergaben sich aus vorlagen /selektionen im excel format. Diese habe ich importiert.  Wie gesagt nun brauch ich nur noch diese umkrempel aktion das ich am ende nur eine zeile pro kunde habe. Danke für die Hilfsbereitschaft

astis

Hallo und zuersteinmal 1000fachen Dank für eure Hilfe. Das mit der Kreuztabellenabfrage war mir völlig neu und hat nach etwas hin und her genau das gewünschte Ergebnis geliefert. Jetzt komm ich erstmal ein ganzes Stück weiter... Dankeschön !