Antwort
 
Themen-Optionen
Alt 28.11.2006, 16:40 Nach oben    #1
Sven Schmalle
 
Benutzerbild von Sclot
 
Registriert seit: 18.08.2005
Ort: Bremen
Beiträge: 149
Standard Ein wenig SQL

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
Angebote
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? :/
Sclot ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.11.2006, 17:14 Nach oben    #2
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

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`
Das sollte eigentlich soweit funktionieren, habs jedoch noch nicht getestet. Man sieht aber schon, dass durch die mehrfachverknüpfung der Tabelle Angebote die Art und Weise nicht die Beste ist, ich denke eine Verarbeitung im Programm ist deutlich performanter!?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.11.2006, 18:18 Nach oben    #3
Sven Schmalle
 
Benutzerbild von Sclot
 
Registriert seit: 18.08.2005
Ort: Bremen
Beiträge: 149
Standard

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
Sclot ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.11.2006, 21:33 Nach oben    #4
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

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
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.11.2006, 08:27 Nach oben    #5
Sven Schmalle
 
Benutzerbild von Sclot
 
Registriert seit: 18.08.2005
Ort: Bremen
Beiträge: 149
Standard

mhm... DAS ist natürlich auch eine idee...
hätte man auch gleich drauf kommen können...
Sclot ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:18 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44