2013-12-23 49 views
0

我想检查列'complete'的值是否小于startDate,如果是,那么我需要将startDate设置为该值,以便行包括返回集合.... ]试图设置开始时间到上一个完成时间

在看数据在这里设置: Data set and sample query

我有几件事情不工作,我想

  1. 行12 ISERROR应该= 1 as列12和行13都actiivtyID 1257

  2. 如果排10是在select语句返回的第一行(使用WHERE开始和结束之间的日期),我需要设置起始日期到第10行的完成值

+0

你的问题我不清楚。你只是想在你选择的情况下返回一个/或在日期? – Leeish

+0

对于编号1如果两个连续的行是相同的activityId,那么我需要将isError设置为1 - 当前代码正在基于顺序recordId进行检查,因为检查需要位于连续的时间戳行上,所以它不会正常工作。所以问题是我如何改变这个检查每行基于时间戳而不是recordId序列。 – Portlight

+0

对于数字2.如果返回的第一行是第14行,那么我想在查询的'where'部分中设置'startdate',使其等于在第13行中看到的完成日期,那么where是哪里l1.completed的startDate和结束日期之间 - 我想设置的startDate =排13的完成 – Portlight

回答

0

我认为你有很多问题,让我们一步一步解决它。 首先,你想让他们使用completed时间排序,所以这是一个sqlFiddle这样做。

接下来,我们添加isErrorsqlFiddle

接下来,我剪切和粘贴您的CoolingHours进去sqlFiddle

接下来,我添加逻辑rownumsqlFiddle

+0

现在我被卡住了,因为我不知道你是什么意思'startdate' –

+0

startDate是传入存储过程的日期(它将是where子句中的startDate和endDate之间的变量) – Portlight

+0

我简化了查询以尝试和帮助了解我所需要的 - 现在我无法将它合并到查询语句中 - 这是...日志l INNER JOIN组g g.groupId = l.groupId LEFT JOIN组g1 ON g.parentId = g1 .groupId LEFT JOIN groups g2 ON g1.parentId = g2。的groupId LEFT JOIN组G3 ON g2.parentId = g3.groupId INNER JOIN活动ON l.logId = a.logId INNER JOIN log1644 L1 ON a.activityId = l1.activityId INNER JOIN log1644 T2 ON t2.recordId = l1.recordid + 1 WHERE i.itemID = 31985 – Portlight

相关问题