正在尝试从SQL Server获取具有lat和long的行
我有一些数据,我正在尝试选择每个具有良好lat-long的人,并且下面没有lat-long的人是我的数据: 某些数据的lat和long值为1和0的原因是,他们的订单在发货前进入erp系统,我们希望在地图中看到这些订单的半径。因此,我们希望事实进入事实表,即使我们可能有或可能没有对该客户的lat或long 基本上,如果我有一个像josh Deshazer这样的客户,他有两个重复的行,因为他进入系统时没有lat和long,最终他的记录上有一个lat和long,我只想选择具有良好lat和long的记录,然后,如果我有一个像迈克·戴维斯这样的客户,即使他没有一个好的lat和long,我仍然希望在查询中全部选择他正在尝试从SQL Server获取具有lat和long的行,sql,sql-server,Sql,Sql Server,我有一些数据,我正在尝试选择每个具有良好lat-long的人,并且下面没有lat-long的人是我的数据: 某些数据的lat和long值为1和0的原因是,他们的订单在发货前进入erp系统,我们希望在地图中看到这些订单的半径。因此,我们希望事实进入事实表,即使我们可能有或可能没有对该客户的lat或long 基本上,如果我有一个像josh Deshazer这样的客户,他有两个重复的行,因为他进入系统时没有lat和long,最终他的记录上有一个lat和long,我只想选择具有良好lat和long的记录
基本上,我希望josh Deshazer 14.5和12.2,ken johnson只有-93和45,而mike davis只有1和0。谢谢任何人对我的帮助,我愿意接受任何建议。这件事真让我受不了 您可以通过使用行数函数来实现这一点
SELECT
Long,Lat,FirstName,lastName,OrderNumber FROM
(
SELECT Long,Lat,FirstName,lastName,OrderNumber,
ROW_NUMBER() OVER (PARTITION BY Long,Lat ORDER BY Long,Lat ) rn
FROM #TMP
) t
WHERE t.rn = 1
ORDER BY FirstName,lastName
试试这个:
(SELECT long, Lat, FirstName, LastName, OrderAmount, OrderNumber
FROM
your_table
WHERE OrderNumber IN (SELECT OrderNumber FROM your_table GROUP BY OrderNumber HAVING COUNT(*) > 1)
AND (long <> 1 AND Lat <> 0)) --Conditions in this line can be tweaked based on how your definition of bad lat/long works
UNION ALL
(SELECT long, Lat, FirstName, LastName, OrderAmount, OrderNumber
FROM
your_table
WHERE OrderNumber IN (SELECT OrderNumber FROM your_table GROUP BY OrderNumber HAVING COUNT(*) = 1));
对于所有具有正确lat/long的重复条目的记录,lat和long是否为1和0?@JoshuaDeshazer Welcome