假设我记录了我的汽车的纬度&每分钟左右经度,每次在表格中添加一行。
我希望有一个包含4列的数据库网格
4号,我可以尝试从谷歌地图中检索,我得到一个文本或空白,所以让我们忽略它。
我如何获得#3?我应该在我的应用程序或MySql中计算它(使用存储过程还是只是一个复杂的SELECT)?
无论哪个答案,有人可以提供一些示例代码或示例链接吗?谷歌今天不是我的朋友: - (
答案 0 :(得分:5)
你可以这样做:
在您的查询中计算它,并将其显示在计算列中(例如显示您正在显示ITEM_PRICE, QUANTITY, ITEM_PRICE * QUANTITY AS LINE_COST
的行总计时。
使用计算字段在应用程序中计算它(双击TTable组件以打开字段编辑器,添加字段,将类型设置为ftCalculated,并在OnCalcEvent中为该计算字段编写代码。 / p>
第一种选择通常更可取,因为DB在数据集上执行这些操作通常比在代码执行时更有效。 (设置操作显然比行操作更有效。)
答案 1 :(得分:1)
Ken的答案是远远不够,因为解决问题最困难的任务是在SQL中同时从两行获取数据。如果您使用的是Oracle或SQL Server,则可以使用分析/窗口LAG功能。使用MySQL,您必须自己完成。这里有2篇关于如何在MySQL中模拟LAG的文章
http://explainextended.com/2009/03/12/analytic-functions-optimizing-lag-lead-first_value-last_value/
另外还有关于如何从上一行获取数据的StackOverflow问题。
How do I lag columns in MySQL?
Calculate delta(difference of current and previous row) in sql
我不能对它们提出任何意见,因为我很少与MySQL合作。