Zum Inhalt wechseln


Foto

Mehrfache KdNr, verschiedene Produkte


  • Bitte melde dich an um zu Antworten
12 Antworten in diesem Thema

#1 nakicam

nakicam

    Newbie

  • 4 Beiträge

 

Geschrieben 06. April 2016 - 19:58

Hallo zusammen,
 
ich habe ein Problem und hoffe hier Rat zu finden. Bin leicht am verzweifeln ...
 
Wir besitzen ein CRM auf Basis von Access 2003 und ich kann leider kein VBA programmieren um das Problem zu lösen, deshalb dachte ich an eine Möglichkeit mit Hilfe von MySQL, Excell und Co.
 
Folgender Fall:
 
Durch meine Abfrage entstehen mehrfache Einträge bezüglich Kundennummer um dem Produkt das er erworben hat.
 
Tabelle sieht in etwa so aus:
 
Kdnr          Produkt        bestelltAm
100             A01                01.01.1999
100             A02                01.01.1999
100             B03                 02.02.1999
101              WW1              31.12.1998
....
 
Ich benötige eine Tabelle die:
 
- KdNr nur einmal auflistet
- Erkennt welches das Min Datum jeglicher Käufe eines Kunden ist und "Alle Produkte" die zu diesem Min Datum gefunden werden in ein neues Feld "ErstkaufProdukt" und ErstkaufDatum überführt.
- Mir würde es schon reichen wenn die Erstkaufprodukte alle als "String" oder der gleichen hinteinander mit Komma getrennt aufgereiht werden und das Min Datum einzeln steht.
 
Beispiel:
Kdnr        Produkt                 bestelltAm
100          A01, A02, B03      01.01.1999
 
Mir geht es am Ende nicht darum diese Daten in das CRM zurück zu führen, sondern um eine Kundenanalyse zu betreiben.
 
Kann mir jemand von euch helfen?
 
Laut Internet gibt es sowas wie eine Group_Concat Funktion in SQL welche vielleicht helfen könnte.
 
Liebe Grüße

Den ersten Teil habe ich gelöst, denke ich:

SELECT KdNr, Produkt,
GROUP_CONCAT(Produkt SEPARATOR ', ') AS Produkte
FROM verkauf
WHERE KdNr = KdNr
GROUP BY KdNr;

Wie kriege ich nun Min Datum ermittelt, und lasse wirklich nur die Daten von MinDatum in "Produkte" einfliessen? wink.png
 

Bearbeitet von nakicam, 06. April 2016 - 19:26.


#2 Dukel

Dukel

    Board Veteran

  • 9.252 Beiträge

 

Geschrieben 06. April 2016 - 20:50

Min()


Stop making stupid people famous.


#3 Nobbyaushb

Nobbyaushb

    Board Veteran

  • 2.629 Beiträge

 

Geschrieben 06. April 2016 - 22:43

Ihr verwendet ein CRM, das als Basis Access hat und dann noch ein Produkt, das bereits seit 2014 aus dem Extented Support ist?

 

https://support.micr...fecycle?p1=2509

 

Dann mal viel Spaß wenn es knallt....

 

shock2.gif

 

Nachtrag - und das bestimmt noch auf XP oder älter.....


Bearbeitet von Nobbyaushb, 06. April 2016 - 22:44.

Mfg aus Bremen

 

Norbert (der andere :))

MVP Exchange Server


#4 Dr.Melzer

Dr.Melzer

    Moderator

  • 26.226 Beiträge

 

Geschrieben 07. April 2016 - 05:15

Hallo nakicam,

 

erstmal willkommen bei MCSEboard.de und schön, dass du uns gefunden hast. :-)

 

Unabhängig von deiner Frage zur SQL Abfrage hast du da eine Umgebung, die Technisch nicht nur veraltet ist, sondern auch (aufgrund des schon lange ausgelaufenen Supports durch Microsoft) ein Sicherheitsrisiko darstellt.

 

Welches CRM setzt ihr den ein und gibt es davon eine aktuelle Version? Möglicherweise bietet die aktuelle version des CRM bereits die Funktionen, die du hier nachzubauen versuchst.


Never argue with an idíot, they drag you down to their level and beat you with experience!

#5 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 07. April 2016 - 06:54

Versuch eines SQL-Laien:

 

SELECT KdNr, Produkt,Min([BestelltAm])
GROUP_CONCAT(Produkt SEPARATOR ', ') AS Produkte
FROM verkauf
WHERE KdNr = KdNr
GROUP BY KdNr;

 

Auf das Result könntest du eine zweite Abfrage legen, die die Ergebnisse so aufbereitet, wie du das brauchst.


Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#6 nakicam

nakicam

    Newbie

  • 4 Beiträge

 

Geschrieben 07. April 2016 - 09:44

Hallo zusammen

erstmal vielen Dank für eure Antworten!

 

Leider habe ich nicht die Entscheidungsmöglichkeit zum Wechsel des CRM sondern soll nur damit vertraut werden um marketingtechnische Analysen betreiben zu können (anhand der Selektion und meiner Statistikumgebung).

 

Das CRM auf Access 2003 wurde sozusagen eigens programmiert. Es gibt keine wirklichen Updates...

 

Die obige Abfrage funktioniert so leider auch nicht, dann wird mir nur ein MinDatum angezeigt..

 

Wie könnte ich denn diese Abfrage mit einem Update auf ein neues Feld "Erstkaufdatum" verknüpfen?


Und warum klappt die Abfrage :

 

SELECT KdNr, Produkt,
GROUP_CONCAT(Produkt SEPARATOR ', ') AS Produkte
FROM verkauf
WHERE KdNr = KdNr
GROUP BY KdNr;

 

... manchmal und manchmal spuckt Sie garnichts aus? Ist das ein Bug von HeidiSQL?



#7 Sunny61

Sunny61

    Expert Member

  • 22.101 Beiträge

 

Geschrieben 07. April 2016 - 10:45

Weshalb fragst Du eigentlich nicht den Hersteller des CRM? Der sollte euch doch bei solchen SQL Abfragen auf seinem SYSTEM am besten unterstützen, oder meinst Du nicht?
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#8 NilsK

NilsK

    Expert Member

  • 12.334 Beiträge

 

Geschrieben 07. April 2016 - 12:25

Moin,

 

Weshalb fragst Du eigentlich nicht den Hersteller des CRM?

 

das hat er doch schon gesagt: Weil es eine Individuallösung ist. Kein kommerzielles CRM.

 

Ich glaube, er hat die Hinweise jetzt verstanden. Lasst uns doch jetzt um seine Frage kümmern, die mit dem technischen Unterbau ja nun mal nichts zu tun hat.

 

Gruß, Nils


  • Dr.Melzer und Lian gefällt das

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#9 nakicam

nakicam

    Newbie

  • 4 Beiträge

 

Geschrieben 07. April 2016 - 13:06

Ja, es ist leider Marke Eigenbau ;-).

 

Ich habe mir nun Daten hochgeladen und einen ersten Versuch gestartet:

 

Abfrage:

siehe screenshot

 

 

Ausgabe:

siehe screenshot

 

Wenn ich diejenigen, die kein MinDatum haben, weil das Bestelldatum warum auch immer "nicht" im CRM erfasst wurde,

ausschließe und nun aus den restlichen Daten das selbe Abfragekonstrukt wie oben, jedoch mit einbeziehen von MinDatum das Group_Concat ansteuern möchte (das muss doch relativ einfach gehen?) wie würde dies aussehen?


Bearbeitet von nakicam, 08. April 2016 - 07:05.


#10 NilsK

NilsK

    Expert Member

  • 12.334 Beiträge

 

Geschrieben 07. April 2016 - 14:19

Moin,

 

versuch mal, dein WHERE-Statement um einen Ausschluss leerer Bestelldaten zu erweitern:

 

WHERE [...]

AND Bestelldatum IS NOT NULL

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#11 OliverHu

OliverHu

    Senior Member

  • 790 Beiträge

 

Geschrieben 07. April 2016 - 15:26

Mal was ganz banales: Excel und eine Pivot-Tabelle? :shock:


  • NilsK gefällt das
Viele Grüße!

#12 nakicam

nakicam

    Newbie

  • 4 Beiträge

 

Geschrieben 11. April 2016 - 09:32

test=# select distinct on (kdnr) kdnr, min(datum), array_to_string(produkte,', ') from (select kdnr, datum, array_agg(produkt) as produkte 
from nakicam group by 1,2 ) bla group by kdnr, produkte;
 kdnr |  min  | array_to_string
------+------------+-----------------
  100 | 1999-01-01 | a01, a02
  101 | 1998-12-31 | ww1
(2 rows)

In einem anderen Forum hat jemand eine Lösung für mich gefunden, jedoch in Postgre SQL.. kann das jemand in MySQL umschreiben?


Bearbeitet von nakicam, 11. April 2016 - 09:33.


#13 PowerShellAdmin

PowerShellAdmin

    Board Veteran

  • 1.135 Beiträge

 

Geschrieben 15. April 2016 - 07:09

In einem anderen Forum hat jemand eine Lösung für mich gefunden, jedoch in Postgre SQL.. kann das jemand in MySQL umschreiben?

 

Eigeninitiavtive?... Basieren doch beide auf T-SQL -> such doch konkret nach den Statements und übersetz es dir.

Ich hatte selbst eine kleinere Webanwendung auf PostgreSQL und sogroß waren die Unterschiede nicht zum MS SQL und diese sind im Regelfall leicht ermittelbar...

Umgekehrt ist das Übersetzen zu MySQL wohl jetzt kein Beinbruch.


Bearbeitet von PowerShellAdmin, 15. April 2016 - 07:12.

Möge die Macht der PS mit Dir sein.