Sqlite - 使用单元格内容获取单元格列顺序

时间:2015-09-04 19:11:45

标签: c# sqlite cell rank

我一直在一个项目实习,这节省了跑步者目标访问时间(TAT),我试图从这些时间获得一些有价值的结果。

示例:

参赛者在目标之间花费了多少时间? (目标时间 - TT)

TAT的跑步者排名是什么?

在目标时间也需要跑步者的等级,但现在TAT很重要。

我准备了一些html表格来解释自己;

我在这里。我将此查询结果保存为视图现在我已经在这个视图上工作了一段时间(视图名称是" RunnerTimes")。



RunnerTimes (Sqlite View)
<table width="600" height="164" border="1">
  <tr>
    <td width="48" height="38">Name</td>
    <td width="159">Target 1 AccessTime</td>
    <td width="159">Target 2 AccessTime</td>
    <td width="169">Target 3 AccessTime</td>
    <td width="172">Target 4 AccessTime</td>
    <td width="157">Target 5 AccessTime</td>
  </tr>
  <tr>
    <td height="37">John</td>
    <td>13:06:00</td>
    <td>13:25:00</td>
    <td>13:32:00</td>
    <td>13:42:00</td>
    <td>13:53:00</td>
  </tr>
  <tr>
    <td height="38">Alice </td>
    <td>13:07:00</td>
    <td>13:22:00</td>
    <td>13:34:00</td>
    <td>13:44:00</td>
    <td>13:56:00</td>
  </tr>
  <tr>
    <td height="39">Mark</td>
    <td>13:05:00</td>
    <td>13:27:00</td>
    <td>13:34:00</td>
    <td>13:41:00</td>
    <td>13:54:00</td>
  </tr>
</table>
&#13;
&#13;
&#13;

但我的主管需要一些更复杂的表格。

&#13;
&#13;
Supervisor needs table like that
<table width="600" height="342" border="1">
  <tr>
    <td width="48">Name</td>
    <td width="159">Target 1 AccessTime</td>
    <td width="159">Target 2 AccessTime</td>
    <td width="169">Target 3 AccessTime</td>
    <td width="172">Target 4 AccessTime</td>
    <td width="157">Target 5 AccessTime</td>
  </tr>
  <tr bgcolor="#FFCC66">
    <td>John</td>
    <td>13:06:00 (2)</td>
    <td>13:25:00 (2)</td>
    <td>13:32:00 (1)</td>
    <td>13:42:00 (2)</td>
    <td>13:53:00 (1)</td>
  </tr>
  <tr>
    <td height="51">&nbsp;</td>
    <td>&nbsp;</td>
    <td> <p>time = 00:19:00 <br>
      time = target2 - target1</p></td>
    <td>00:07:00</td>
    <td>00:06:00</td>
    <td>00:11:00</td>
  </tr>
  <tr bgcolor="#FFCC66">
    <td>Alice </td>
    <td>13:07:00 (3)</td>
    <td>13:22:00 (1)</td>
    <td>13:34:00 (2)</td>
    <td>13:44:00 (3)</td>
    <td>13:56:00 (3)</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td> 00:15:00</td>
    <td>00:12:00</td>
    <td>00:10:00</td>
    <td>00:12:00</td>
  </tr>
   <tr bgcolor="#FFCC66">
    <td>Mark</td>
    <td>13:05:00 (1)</td>
    <td>13:27:00 (3)</td>
    <td>13:34:00 (3)</td>
    <td>13:41:00 (1)</td>
    <td>13:54:00 (2)</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td> 00:22:00</td>
    <td>00:07:00</td>
    <td>00:07:00</td>
    <td>00:13:00</td>
  </tr>
</table>
&#13;
&#13;
&#13;

我如何达到这个等级&#34;(2)&#34;或&#34;(1)&#34;就像在这张桌子上一样。

我试图在C#中自己做,但是它的超低速,计算目标时间,查询跑步者排名并将这些添加到桌面后非常慢。

有人可以帮助我吗?抱歉英语不好欢呼:)

编辑

RunnerTimes - 在sql下面给出了访问时间表 - 如果没有访问权限写入&#39; mp&#39;到细胞

&#13;
&#13;
"SELECT t.braceletID As 'Bracelet',(t.Name|| ' ' || t.Surname) As 'Runner',
IFNULL( MAX(CASE WHEN r.ControlID = 24 THEN time(julianday(strftime('%H:%M:%S',r.accesstime))-.5)END),'mp') AS '1',

IFNULL( MAX(CASE WHEN r.ControlID = 26 THEN time(julianday(strftime('%H:%M:%S',r.accesstime))-.5)END),'mp') AS '2',

IFNULL( MAX(CASE WHEN r.ControlID = 28 THEN time(julianday(strftime('%H:%M:%S',r.accesstime))-.5)END),'mp') AS '3',

IFNULL( MAX(CASE WHEN r.ControlID = 23 THEN time(julianday(strftime('%H:%M:%S',r.accesstime))-.5)END),'mp') AS '4',

IFNULL( MAX(CASE WHEN r.ControlID = 25 THEN time(julianday(strftime('%H:%M:%S',r.accesstime))-.5)END),'mp') AS '5'

FROM Runner t Left Outer Join RunnerAccess r On  t.braceletid = r.RunnerID 

Where t.categoryid=1  GROUP BY  t.braceletid"
&#13;
&#13;
&#13;

参赛者参赛类别和目标因类别而异 在此查询目标是&#34; 24 - 26 - 28 - 23 - 25&#34;。 我更改了列名并将它们设置为&#34; 1 - 2 - 3 - 4 - 5&#34;然后在SQLite中创建了RunnerTimes视图。

0 个答案:

没有答案