5.4k Aufrufe
Gefragt in Datenbanken von
Hallo, vielleicht kann mir jemand hier helfen =)

wahrscheinlich ist es ein ganz einfaches problem, aber alle meine ansätze bringen irgendwie nur mangelhafte ergebnisse...

ich habe eine tabelle mit Kundendaten und Kundenherkunft. Darin sind 1700 unterschiedliche Herkünfte eingetragen (omg) also z.b. blabla Zeitung 1, Internet, Blabla Zeitung 2 usw.... also worüber der erste Kontakt hergestellt wurde bzw. der Kunde Kenntnis von dem Produkt erhalten hat.

ich möchte:
diese ergebnisse gruppieren (alle Zeitungen zusammen etc)
und dann ausgeben. Einzige Möglichkeit die ich selbt hinkriege ist pro einzelnem Parameter (Also eine "Zählabfrage" für alles mit Zeitung z.B., gibt dann ein Feld aus mit dem Wert)
Geht das nicht auch einfacher/kompakter?
Also z.B. wie
SELECT Count(t_kunde.kun_id) AS Anzahlvonkun_id
FROM t_kunde
GROUP BY t_kunde.kun_herkunft
HAVING (((t_kunden.kun_herkunft) Like "*Zeitung*"));

aber dass er mir dann halt nicht alle unterschiedlichen Zeitungen auflistet sondern das automatisch gruppiert?
Und das ganze dann auch noch für alle gruppierungen in einer Abfrage? Das wird doch sicherlich möglich sein.

Ich will dann später mit dieser Abfrage weiterarbeiten in dem Sinne, wer von diesen Kunden das Produkt dann auch gekauft hat (via Tabelle Bestellungen)

Hab wirklich versucht mich schlau zu lesen aber das hat leider nichts gebracht ;) Für Hilfe wäre ich sehr dankbar!

19 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo shafty,

kannst du vielleicht mal mit Testdaten (z.B. 3 Kunden K1, K2 und K3) und der Kundenherkunft (blabla Zeitung 1, Internet, Blabla Zeitung 2) zusammenstellen und dann notieren, wie das Ergebnis aussehen soll?
Evtuell hilft die aber auch schon folgende Abfrage weiter

SELECT Count(t_kunde.kun_id) AS Anzahl, t_kunde.kun_herkunft
FROM t_kunde
GROUP BY t_kunde.kun_herkunft;

Gruß
Ralf
0 Punkte
Beantwortet von
danke für deine antwort RaHi
soweit hatte ich es aber schon probiert, dann listet er mir das nach dem schema


kun_id kun_herkunft

2 Zeitung 1
50 Zeitung 2
100 Internet
7 Zeitung 3
...



Ich möchte aber gerne: dann z.B. gruppieren nach Zeitung*

kun_id kun_herkunft
59 Zeitung
100 Internet
...
0 Punkte
Beantwortet von
also momentan fällt mir nix schlaueres ein als für jede gruppe eine eigne abfrage zu erstellen die dann den gesamtwert ausgibt... und dann führe ich das irgendwie in einem formular zusammen oder so.... aber schön ist das nicht oder xD

[code]SELECT Count(t_kunde.kun_id) AS Anzahlvonkun_id
FROM t_kunde
WHERE (((t_kunde.kun_herkunft) like "zeitung*"));


p.s. sorry übrigens für die nichtssagende threadüberschrift ^^
0 Punkte
Beantwortet von
so habe jetzt grade gemerkt, dass das
für jede gruppe eine eigne abfrage zu erstellen die dann den gesamtwert ausgibt... und dann führe ich das irgendwie in einem formular zusammen oder so

nicht funktioniert! Fehlermeldung ... kann die werte nicht verbinden erstellung Formular unmöglich in etwa =(

jetzt bin ich völlig ratlos
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Hi,

also Du könntest noch eine Tabellenspalte namens HID oder so (Herkunfts-ID oder auch Herkunfts-Kategorie) einfügen, dann trägst Du bei allen Zeitungen eine 1 ein, bei Internet eine 2, bei Flyern eine 3 usw. Bei Internet-Zeitungen musst Du Dir dann überlegen was Du machst ;-)

Aber dann könntest Du über diese HID einfach zählen und nach Herkunft(-ID) abfragen.


mfg, sup[sup]2010[/sup]
0 Punkte
Beantwortet von
vielen dank für deine antwort, dass ist eine super idee!!
gibt es jetzt vielleicht noch eine möglichkeit das zu automatisieren? (per UPDATE oder so)
denn es handelt sich wie gesagt um 20000 datensätze mit rund 1700 unterschiedlichen "herkunft" angaben (total bescheuert...) naja und da würde ich gern irgendwie gruppieren

zeitung, abendblatt, bild, FAZ, ... *zeitung* kriegt ne 1 oder so usw...
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Hi,
ja, das habe ich befürchtet und mich deshalb mit einem UPDATE - Statement zurückgehalten...

Wenn die Spalte Herkunft bei Zeitungen immer "Zeitung" enthalten würde, dann wäre es sicher recht schnell erledigt. Aber wie es aussieht, steht da eben "Bild", "FAZ", "Welt am Sonntag", Süddeutsche" etc. Ohne Kenntnis, was da genau steht ist es für mich nicht ganz einfach da konkrete Befehle zu nennen. Aber im Prinzip so:

UPDATE deineTabelle SET HID=1 WHERE herkunft='bild';

statt bild dann eben andere Bezeichner einsetzen...
0 Punkte
Beantwortet von Experte (6.4k Punkte)
UPDATE deineTabelle SET HID=1
WHERE herkunft='bild'
or herkunft='FAZ'
or herkunft='Welt am Sonntag'
or...;

sollte funktionieren...
0 Punkte
Beantwortet von
ja, dass wird sicherlich funktionieren, aber wie mache ich weiter?`

also update set hid = 1 für xxx or yyyy or zzz
update set hid = 2 für aaa or bbb or ccc
usw....
ist das möglich? per wenn /dann oder irgendwie anders?
0 Punkte
Beantwortet von
ich glaub ich habs:


UPDATE tabelle SET tabelle.hid= IIf([kun_herkunft] like "Internet*","1",IIf([kun_nachweis] = "Zeitung","2"));


scheint zu funktionieren =)
...