![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Sven Schmalle Registriert seit: 18.08.2005 Ort: Bremen
Beiträge: 149
|
Hallo Ich habe leichte Lösungs-schwierigkeiten eines SQL (MySQL) Problems. Ich habe 2 Tabellen: Firmen Code: id|firma |sonstiges --+---------------+---------- 1 |Wasserhansa AG |blah 2 |Meyer GmbH |blub 3 |Brutus AG |nicht 4 |Elektro Flink |wichtig Code: firmid|umsatz| was ------+------+------------- 1 |1000 | Metallteile 2 |200 | Kabel 3 |400 | Betonrohre 4 |50 | Kabel 3 |5000 | Metallteile Einen Gesamtumsatz in dieser form habe ich schon geschafft anzeigen zu lassen. Code: Firma | Gesamtumsatz ---------------+------------- Wasserhansa AG | 1000 Meyer GmbH | 200 Brutus AG | 5400 Elektro Flink | 50 Was ich aber brauche ist eine Aufschlüsselung des Gesamtumsatzes auf die einzelnen Positionen: Code: Firma |Metallteile|Kabel|Betonrohre| Gesamtumsatz ---------------+-----------+-----+----------+------------- Wasserhansa AG | 1000 | | | 1000 Meyer GmbH | | 200 | | 200 Brutus AG | 5000 | | 400 | 5400 Elektro Flink | | 50 | | 50 kann da einer weiterhelfen? :/ |
| | |
| | Nach oben #2 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Das ist ansich nicht schwierig, aber für SQL eher unpraktikabel, da wäre es sinniger, die Daten im Programm auszuwerten, aber ich gebe mal ein Beispiel, wie es zumindest erstmal mit 2 Zeilen klappt: Code: SELECT `f`.`firma` AS `Firma`, `m`.`umsatz` AS `Metallteile`, `k`.`umsatz` AS `Kabel`, SUM(`m`.`umsatz`, `k`.`umsatz`) AS `Gesamtumsatz` FROM `firmen` AS `f` LEFT OUTER JOIN `angebote` AS `m` ON `m`.`was`='Metallteile' AND `m`.`firmid`=`f`.`id` LEFT OUTER JOIN `angebote` AS `k` ON `k`.`was`='Kabel' AND `k`.`firmid`=`f`.`id`
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #3 |
| Sven Schmalle Registriert seit: 18.08.2005 Ort: Bremen
Beiträge: 149
|
Ich könnte es nur mit PHP machen, das es eine PHP+MySQL Applikation ist. Und nach meinen test dauert das bei 6000 Firmen mit über 100k angebote doch sehr extrem lang (zumindest länger als die 30 sek timeout). ich werd dein sql mal versuchen, danke |
| | |
| | Nach oben #4 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Autsch! Bei so vielen Datensätzen solltest du mal darüber nachdenken, ob es nicht vielleicht Sinn macht, eine Tabelle mit den entsprechenden Daten quasi als Cache zu nutzen, der dann entweder bei Änderung direkt mit aktualisiert wird oder mittels Cronjob ab und an abgeglichen wird. Wäre jedenfalls jetzt meine favorisierte Lösung zur Performancesteigerung...
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Abkürzung des Wochentags in SQL, vgl. strftime in PHP | Ben | Datenbanken | 4 | 12.04.2007 16:51 |
| Sql Datei einlesen? | heohni | PHP-Programmierung | 5 | 01.10.2006 19:16 |
| Zugriff auf Wert des vorhergenden Datensatzes in einer SQL Abfrage | Jay | Datenbanken | 5 | 17.07.2006 15:25 |
| Probleme mit Variable in SQL Anweisung | Doggi | Datenbanken | 10 | 15.12.2005 14:04 |
| SQL - Fehler | Testi | Allgemeine Java-Programmierung | 6 | 19.08.2004 13:12 |