SQL - 选择以关联记录

时间:2012-11-15 07:28:51

标签: mysql sql select conditional-statements

我有下表名为Tracking:

ID_path -- step_start -- step_end -- time  
  1         A             B      10  
  1         B             C      20  
  1         C             D      30  
  2         A             C      100  
  3         D             C      20  
  3         A             N      300

我正在寻找Mysql中的单个查询,它可以提取路径A-C的累积值,因此本身和所有步骤都是:[A-C] + [A-B] + [B-C]。

  

从跟踪位置(step_start ='A'或step_end ='C')和ID_path = ID_path

中选择总和(时间)

我认为这个查询考虑到step的值不能同时在开始和结束但我不知道如何表达最后一个条件(ID_path = ID_path)以便只提取具有相同的记录id_path。 是否有特定的SQL函数?

感谢任何帮助/ mysql编码指南/建议

2 个答案:

答案 0 :(得分:1)

你可以这样做:

Select ID_path,sum(time)
from tracking 
where (step_start = 'A' or step_end = 'C')
group by ID_path 


SQl fiddle demo

答案 1 :(得分:0)

我不确定你在问什么,但我怀疑是这样的:

SELECT id_path, sum(time) total
WHERE step_start = 'A' OR step_end = 'C'
GROUP BY id_path