2017-08-26 8 views
0

ich auf einem MySQL-basiertes SQL Problem Hilfe benötigen, ist die folgende Beschreibung und Probeneingang:richtiger Ansatz zu einer SQL-Abfrage

enter image description here

Und die folgende Beispielausgabe:

enter image description here

Ich habe versucht, etwas wie:

select ROUND(sum(i1.TIV_2012), 2) from INSURANE i1, INSURANCE i2, INSURANCE i3 where (i1.PID!=i2.PID and i1.TIV_2011=i2.TIV_2011) and (i1.PID!=i3.PID and (i1.LAT!=i3.LAT or i1.LON!=i3.LON)) 

Das System kann dies jedoch nicht akzeptieren. Kann mir jemand helfen?

+1

Pls mit uns die genaue Fehlermeldung teilen! Und es gibt einen Tippfehler im ersten Tabellennamen. – Shadow

+1

* Niemals * Kommas in der FROM-Klausel verwenden. * Benutze immer die richtige, explizite Join-Syntax. –

+0

Es gibt keinen Fehler, aber das Ergebnis ist nicht korrekt, nach dem System – MyCoy

Antwort

1

Verwenden Sie die folgende SQL-

SELECT SUM(i1.tiv_2012) total  
    FROM insurance i1 
WHERE NOT EXISTS (SELECT 1 
        FROM insurance i2 
        WHERE i1.lat = i2.lat 
         AND i1.lon = i2.lon 
         AND i1.pid <> i2.pid) 
    AND EXISTS (SELECT i3.tiv_2011 
       FROM insurance i3 
       WHERE i3.tiv_2011 = i1.tiv_2011 
        AND i3.pid <> i1.pid); 

Ergebnis

total 
1711758.65 
+0

Danke für die Hilfe – MyCoy

Verwandte Themen