php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-06-2009, 15:11
nohfreak
 Registrierter Benutzer
Links : Onlinestatus : nohfreak ist offline
Registriert seit: Nov 2007
Beiträge: 160
nohfreak ist zur Zeit noch ein unbeschriebenes Blatt
Standard GROUP BY: Wie Tupel mit 0 erhalten ?

Moin Leute,

ich habe eine Datenbank zur WM2006 und muss dafür eine VIEW erstellen, die alle Vorrundenspiele mit ihren Ergebnissen listet. Dafür wollte ich erstmal 2 Views bauen die die Tore der jeweiligen Mannschaften listen, weil man in MySQL in einer VIEW keine Subselects verwenden kann.

Das funktioniert soweit auch ganz gut. Problem ist nur, dass bei der Gruppierung diejenigen Mannschaften rausfallen, die in einem Spiel 0 Tore geschossen haben.

Hier das Query dazu:

Code:
SELECT s.SpielID, s.Runde, s.Mannschaft1, COUNT(*) AS Tore
    FROM Spiele s, Tore t, Spieler sp
        WHERE s.Runde LIKE 'Group %'
            AND t.SpielID = s.SpielID
            AND t.SpielerNR = sp.SpielerNR
            AND ( 
                  (sp.Land = s.Mannschaft1 AND t.Spielsituation != 'own goal') 
                    OR* 
                  (sp.Land = s.Mannschaft2 AND t.Spielsituation = 'own goal')
                )
GROUP BY s.SpielID
;
Also was ich damit erreichen möchte sind im Prinzip erstmal alle Mannschaften und die Tore, die sie erzielt haben pro Spiel ( inklusive Eigentore der anderen Mannschaft ). Das klappt auch wie gesagt fehlen nur die Tupel wo das COUNT(*) 0 ergibt. Wie kann ich dafür sorgen, dass die erhalten bleiben ?

Im Anhang noch ein SQL-Dump der Datenbank.

Danke euch schonmal im Vorraus.
Angehängte Dateien
Dateityp: txt WM2006.txt (87,4 KB, 453x aufgerufen)
Mit Zitat antworten
  #2 (permalink)  
Alt 08-06-2009, 20:12
Big Chief
 Registrierter Benutzer
Links : Onlinestatus : Big Chief ist offline
Registriert seit: Jun 2002
Ort: Südhessen
Beiträge: 356
Big Chief ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Versuch mal die Tabelle "Tore" mit einem LEFT JOIN dranzujoinen, und nicht per INNER JOIN. Da du wahrscheinlich (ich habe mir den Dump nicht angeschaut) für Spiele mit 0 Toren keinen Treffer in der Tabelle "Tore" bekommst, kommt natürlich auch kein Ergebnis zurück, das du mit count(*) zählen könntest.
__________________
Geht nicht ist keine Fehlermeldung
Mit Zitat antworten
  #3 (permalink)  
Alt 09-06-2009, 01:49
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

wenn Du SUM statt COUNT verwendest, kannst Du auch die Tore beider Mannschaften, sprich das Spielergebnis bekommen:

Code:
SELECT s.SpielID, s.Runde, s.Mannschaft1, s.Mannschaft2, 
   SUM(
      sp.Land = s.Mannschaft1 AND t.Spielsituation != 'own goal' 
      OR sp.Land = s.Mannschaft2 AND t.Spielsituation = 'own goal'
   ) AS tore1,
   SUM(
      sp.Land = s.Mannschaft2 AND t.Spielsituation != 'own goal' 
      OR sp.Land = s.Mannschaft1 AND t.Spielsituation = 'own goal'
   ) AS tore2
   FROM Spiele s
   INNER JOIN Tore t ON s.SpielID = t.SpielID
   INNER JOIN Spieler sp ON t.SpielerNr = sp.SpielerNr 
   GROUP BY s.SpielID
LG
Mit Zitat antworten
  #4 (permalink)  
Alt 16-06-2009, 21:26
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:

Du hörst aber nicht grad zufällig DBS in Osnabrück, oder?

Mit Zitat antworten
  #5 (permalink)  
Alt 17-06-2009, 00:54
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von krel Beitrag anzeigen
OffTopic:

Du hörst aber nicht grad zufällig DBS in Osnabrück, oder?

Doch, anscheinend.
Von Studenten sollte man doch wohl erwarten können, dass sie ihre Übungen selbst lösen können, vor allem, wenn das auch noch in Gruppen abgegeben wird. So schwer war das ja nu nicht.
Wer da am Sonntag abend noch schnell eine Lösung aus dem Netz schnorren muss, hat halt den Schein am Ende einfach nicht verdient.
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
formulardaten erhalten daywandler PHP Developer Forum 0 11-12-2007 22:28
include - links erhalten subabrain BRAINSTORMING PHP/SQL/HTML/JS/CSS 4 16-03-2006 10:38
[Variablen] erhalten Mir PHP Developer Forum 8 04-11-2005 10:33
sortierung array erhalten bigant PHP Developer Forum 2 04-08-2005 19:03
Formulardaten erhalten? Magic11 PHP Developer Forum 7 09-10-2004 14:14

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:58 Uhr.