php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.08.2004, 14:41  
Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 59
mrSpok
Standard mehrere gezielte COUNT's

yo mysql freaks...

bin mit meinem mysql latein am ende und brauche eure hilfe:

also ich möchte 3 riesen SELECT-queries aus performance gründen zu einem zusammenbasteln (die folgenden hab ich aufs minimum gekürzt):
Code:
1: $xport="SELECT COUNT(spalte1) AS x, spalte2 FROM tabelle WHERE spalte3 > 0 ";
2: $progress="SELECT COUNT(spalte1) AS y, spalte2 FROM tabelle WHERE spalte3 > 0 AND spalte4 > 0 ";
3: $clean=SELECT COUNT(spalte1) AS z, spalte2 FROM tabelle WHERE spalte3 = 0 AND spalte4 = 0";
eine kleine status-abfrage, die die gesamt-anzahl der jeweiligen statis geben soll. zu bemerken ist noch:
'0' ein status ist und '>0' ein zweiter (egal ob 1,2,3,4).

Ziel - eine rückgabe wie:
statusx; statusy; statusz; productID;
19; 2; 4; 1234567

ich weiss nicht ob mysql sowas kann... vermute es aber...
kann mir da wer unter die arme greifen?

thx
mrSpok ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.08.2004, 15:45  
Gast
 
Beiträge: n/a
Standard

hallo,
wenn das alles in einer abfrage abgehandelt werden soll dann so:

SELECT count(spalte1), spalte 2, spalte3, spalte4
FROM tabelle
WHERE spalte3 >= 0
AND spalte4 >= 0
GROUP BY spalte 2, spalte3, spalte4

die ergebnisse musst du dann in der loopschleife auf dem resultset selber zusammenrechnen. ob dieser ansatz sinvoll ist hängt von der kardinalität (anzahl werte )der werte in den spalten 3, 4. gibt es viele unterschiedliche inhalte in den spalten 3,4 so dürfte die verarbeitung in der schleife länger dauern als die 3 abfragen hintereinander (index !!!)

gruss
janusz
  Mit Zitat antworten
Alt 02.08.2004, 17:11  
Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 59
mrSpok
Standard

hallo janusz

genau das möchte ich nicht..
ich hab mich mal inzwischen ins zeug gelegt:

Code:
SELECT bestellschein, produkttyp, 
SUM(IF(status>0,1,0)) AS fertig,
SUM(CASE WHEN masterstatus=0 THEN (IF(status=0,1,0)) ELSE 0 END) AS keinMaster,
SUM(CASE WHEN masterstatus=0 THEN (IF(status>0,1,0)) ELSE 0 END) AS verarbeitung,
COUNT(id) AS Total
FROM tabelle
WHERE kunde=koenig
GROUP BY bestellschein, produkttyp;
nur performance...?
greetz
mrSpok ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zwei counts in unterschiedlichen tabellen aber gleiches Erg. obi Datenbanken 10 05.12.2007 17:30
Gezielte MySQL Ausgabe PHP Tipps 2005 8 18.04.2005 19:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.