INSERT in Tabelle, mit SELECT aus anderer Tabelle

Bazilinho81

Neuer Benutzer
Beiträge
2
Hallo!
Ich möchte gerne Werte aus einer Tabelle mit einem COUNT-Befehl zählen und dieses Ergebnis in Abhängigkeit des Datums in eine andere Tabelle speichern. Aber irgendwie hängt mein Statement noch, sobald ich die WHERE-Bedingung hinzufüge. Ich hoffe, Ihr könnt mir helfen.. Vielen Dank schonmal im Voraus!!

Code:
INSERT INTO my_database.resulttable (04_web_income)
SELECT COUNT(*) FROM my_database.follows as t1, my_database.resulttable as t2 WHERE t2.02_AUTHOR = 'WEB' AND DATE(t1.06_InsertTime) = t2.01_datum GROUP BY t2.01_datum

Das SELECT-Statement an sich funktioniert und gibt mir die Anzahl meines "income" pro Tag wieder, soweit dieser in der resulttable vorhanden ist. Jetzt möchte ich diese Werte eben noch dem entsprechenden Eintrag der resulttable hinzufügen...

Vielen Dank schonmal!!

Gruß, Bazilinho
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.731
Hallo!
Ich möchte gerne Werte aus einer Tabelle mit einem COUNT-Befehl zählen und dieses Ergebnis in Abhängigkeit des Datums in eine andere Tabelle speichern. Aber irgendwie hängt mein Statement noch, sobald ich die WHERE-Bedingung hinzufüge. Ich hoffe, Ihr könnt mir helfen.. Vielen Dank schonmal im Voraus!!

Code:
INSERT INTO my_database.resulttable (04_web_income)
SELECT COUNT(*) FROM my_database.follows as t1, my_database.resulttable as t2 WHERE t2.02_AUTHOR = 'WEB' AND DATE(t1.06_InsertTime) = t2.01_datum GROUP BY t2.01_datum

Das SELECT-Statement an sich funktioniert und gibt mir die Anzahl meines "income" pro Tag wieder, soweit dieser in der resulttable vorhanden ist. Jetzt möchte ich diese Werte eben noch dem entsprechenden Eintrag der resulttable hinzufügen...

Vielen Dank schonmal!!

Gruß, Bazilinho

Du suchst da wohl eher ein Update, oder? Aber wozu das? Das ist zum einen redundant (weil man kann es ja via select erfragen) und zum anderen inkonsistent (die Tabelle kann sich ja ändern).
 

ukulele

Datenbank-Guru
Beiträge
4.702
Das Ausgangsstatement ist syntaktisch falsch. Du gruppierst nach einer Datumsspalte die aber im Select nicht vorkommt. Also zählst du alle Einträge (falls MySQL das ausführt was es eigentlich nicht dürfte), dann kannst du auch auf die Gruppierung verzichten.

Abgesehen davon macht es keinen Sinn sowas in eine extra Tabelle zu schreiben wegen der Update-Problematik und Redundanz. Viel mehr Sinn macht eine View mit deinem Select.
Code:
SELECT    t2.01_datum AS Datum,
        count(*)AS Income
FROM    my_database.follows as t1,
        my_database.resulttable as t2
WHERE    t2.02_AUTHOR = 'WEB'
AND        date(t1.06_InsertTime) = t2.01_datum
GROUP BY t2.01_datum
 

Bazilinho81

Neuer Benutzer
Beiträge
2
Hallo!
Vielen Dank zusammen! Ja, die Redundanz ist hier absolut gewünscht, da ich eine Tabelle habe, in der Datensatz für Datensatz gespeichert wird. Letztlich will ich einfach eine Übersichtstabelle haben, in der das Ergebnis des Ganzen steht.
Ich hzabe das ganze jetzt über eine Stored Procedure gelöst, der ich als Parameter das Datum mitgebe..
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.731
Hallo!
Vielen Dank zusammen! Ja, die Redundanz ist hier absolut gewünscht, da ich eine Tabelle habe, in der Datensatz für Datensatz gespeichert wird.

Das ist - typisch für Tabellen ;-)

Letztlich will ich einfach eine Übersichtstabelle haben, in der das Ergebnis des Ganzen steht.
Ich hzabe das ganze jetzt über eine Stored Procedure gelöst, der ich als Parameter das Datum mitgebe..

Auch das geht, vermeidet die Redundanz und liefert valide Daten.
 
Oben