2017-08-26 42 views
0

我需要一个基于MySQL的SQL问题有所帮助,下面是描述和样本输入:正确的做法到SQL查询

enter image description here

而下面的示例输出:

enter image description here

我已经试过类似:

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)) 

但系统不能接受这个。 任何人都可以帮我吗?

+1

请与我们分享确切的错误信息!第一个表名中有一个错字。 – Shadow

+1

*从不*在'FROM'子句中使用逗号。 *总是*使用正确的,显式的'join'syntax。 –

+0

根据系统 – MyCoy

回答

1

使用下列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); 

结果

total 
1711758.65 
+0

没有错误,但结果不正确感谢您的帮助 – MyCoy