Hallo miteinander, ich habe nun seit geraumer Zeit an diesem Problem getüftelt aber ich sehe den Wald vor lauter Bäumen nicht mehr und finde keine Lösung. Oder es gibt für mein Problem keine Lösung. Ich weiß nicht mehr weiter darum benötige ich Rat und Hilfe von einem Externen der sich das Problem mal ansehen kann und mir weiterhilft.
Also zu aller erst zu meiner Aufgabe: Ich bastel seit längerem an einer Kontoverwaltung/Aktienverwaltung (reiner Privatzweck). Vorher habe ich alles in Excel abgetippert. Nun möchte ich mich mal meine Daten in eine Datenbank speisen und diese mithilfe von SQL-Statements und Views in naher Zukunft über eine Applikation abfragen und anzeigen lassen.
So sah meine Excel in etwa aus und so möchte ich meine Daten auch per SQL/View darstellen lassen.
Ist das möglich? Wenn ja Wie?
Ich habe auch eine erste "Lösung".
Erspartes
ID Datum Konto_Name Konto_ID Wert
1; 01.01.2014; Mercedes; 1; 100,00 €
2; 01.01.2014; BMW; 2; 125,00 €
3; 01.02.2014; Mercedes; 1; 100,00 €
4; 01.02.2014; Audi; 3; 150,00 €
5; 01.02.2014; BMW; 2; 125,00 €
6; 01.03.2014; Mercedes; 1; 100,00 €
Konto
ID Konto_Name
1; Mercedes
2; BMW
3; AUDI
Mit diesem Select erzeuge ich mir die "Innere_view" die im Nachgang für eine weitere View nur als Datengrundlage gilt.
Danach erzeuge ich die "Oberview" die über das ganze nochmal abfragt und eine neue View erstellt.
So nun mein eigentliches Problem, abgesehen davon das es ***hit Statements wahrscheinlich sind. Aber bin gerne offen für Code Verbesserungen
Wie man sehen kann muss ich noch für jedes Konto die "Konto_ID = x" mit übergeben. Es wird anhand des Datums schon gruppiert ich hätte es aber gerne so kurz wie möglich und das die Konten automatisch übernommen werden. Denn nehmen wir mal an es kommt ein neues Konto Volkswagen [id=4] hinzu so müsste ich immer die View anpassen. Das ist aber nicht sehr effizient. Ich hätte es gerne so das ich das Konto einfügen kann in die Tabellen, jeweils in Konto und in erspartes und dann die View "automatisch" die neue Spalte beim nächsten Start einliest. Das muss doch sicherlich mit dem Konto gejoint werden, nur weiß ich nicht wie ich das korrekt machen soll.
Ich hoffe es war einigermaßen verständlich und hoffe das mir hier jemand Helfen kann.
Bitte nehmt mir den langen Post nicht übel.
Gruß
Also zu aller erst zu meiner Aufgabe: Ich bastel seit längerem an einer Kontoverwaltung/Aktienverwaltung (reiner Privatzweck). Vorher habe ich alles in Excel abgetippert. Nun möchte ich mich mal meine Daten in eine Datenbank speisen und diese mithilfe von SQL-Statements und Views in naher Zukunft über eine Applikation abfragen und anzeigen lassen.
So sah meine Excel in etwa aus und so möchte ich meine Daten auch per SQL/View darstellen lassen.
Ist das möglich? Wenn ja Wie?
Ich habe auch eine erste "Lösung".
Erspartes
ID Datum Konto_Name Konto_ID Wert
1; 01.01.2014; Mercedes; 1; 100,00 €
2; 01.01.2014; BMW; 2; 125,00 €
3; 01.02.2014; Mercedes; 1; 100,00 €
4; 01.02.2014; Audi; 3; 150,00 €
5; 01.02.2014; BMW; 2; 125,00 €
6; 01.03.2014; Mercedes; 1; 100,00 €
Konto
ID Konto_Name
1; Mercedes
2; BMW
3; AUDI
Mit diesem Select erzeuge ich mir die "Innere_view" die im Nachgang für eine weitere View nur als Datengrundlage gilt.
Code:
select `hauptselect`.`Datum` AS `datum`,
ifnull((
select `verwaltung`.`erspartes`.`Wert`
from `verwaltung`.`erspartes`
where ((`verwaltung`.`erspartes`.`Konto_ID` = 1)
and (`verwaltung`.`erspartes`.`Datum` = `hauptselect`.`Datum`))),0) AS `A`,
ifnull((
select `verwaltung`.`erspartes`.`Wert`
from `verwaltung`.`erspartes`
where ((`verwaltung`.`erspartes`.`Konto_ID` = 2)
and (`verwaltung`.`erspartes`.`Datum` = `hauptselect`.`Datum`))),0) AS `B`,
ifnull((
select `verwaltung`.`erspartes`.`Wert`
from `verwaltung`.`erspartes` where ((`verwaltung`.`erspartes`.`Konto_ID` = 3)
and (`verwaltung`.`erspartes`.`Datum` = `hauptselect`.`Datum`))),0) AS `C`
from `verwaltung`.`erspartes` `hauptselect`
group by `hauptselect`.`Datum`
Danach erzeuge ich die "Oberview" die über das ganze nochmal abfragt und eine neue View erstellt.
Code:
select `x`.`datum` AS `Datum`,`x`.`A` AS `Mercedes`,`x`.`B` AS `BMW`,`x`.`C` AS `AUDI,
round((`x`.`A` + `x`.`B` + `x`.`C`),2) AS `Summe` from `verwaltung`.`innerview_erspartes` `x`
So nun mein eigentliches Problem, abgesehen davon das es ***hit Statements wahrscheinlich sind. Aber bin gerne offen für Code Verbesserungen
Wie man sehen kann muss ich noch für jedes Konto die "Konto_ID = x" mit übergeben. Es wird anhand des Datums schon gruppiert ich hätte es aber gerne so kurz wie möglich und das die Konten automatisch übernommen werden. Denn nehmen wir mal an es kommt ein neues Konto Volkswagen [id=4] hinzu so müsste ich immer die View anpassen. Das ist aber nicht sehr effizient. Ich hätte es gerne so das ich das Konto einfügen kann in die Tabellen, jeweils in Konto und in erspartes und dann die View "automatisch" die neue Spalte beim nächsten Start einliest. Das muss doch sicherlich mit dem Konto gejoint werden, nur weiß ich nicht wie ich das korrekt machen soll.
Ich hoffe es war einigermaßen verständlich und hoffe das mir hier jemand Helfen kann.
Bitte nehmt mir den langen Post nicht übel.
Gruß