如何行之间的值进行比较的访问查询行之

由网友(媳妇别闹biabiabia~)分享简介:我有一个表表1 如下图所示。我想找到的所有 ^ h 在状态字段是在两个→。对于以上的标准输出应该是 15年4月1日, 15年5月1日和 15年7月1日。我该如何解决这个问题?日期状态15年1月1日一15年2月1日ħ15年3月1日大号15年4月1日ħ15年5月1日ħ15年6月1日大号15年7月1日ħ15年...

我有一个表表1 如下图所示。我想找到的所有 ^ h 状态字段是在两个→。对于以上的标准输出应该是 15年4月1日 15年5月1日 15年7月1日。我该如何解决这个问题?

 日期状态
15年1月1日一
15年2月1日ħ
15年3月1日大号
15年4月1日ħ
15年5月1日ħ
15年6月1日大号
15年7月1日ħ
15年8月1日大号
 

解决方案

我想你可以使用这样的查询:

  SELECT
    t.Date,t.Status
从
    yourTable为T
加入 (
    SELECT MIN(日期)AS为MinDate,马克斯(日期)AS的maxDate
    从yourTable
    WHERE状态='L')为L
ON t.Date> = l.minDate
    与t.Date< = l.maxDate
    与t.Status<> L;
 

数据库基础学习四 一 子查询 1 带比较运算符的子查询 与子查询单一结果值进行比较 2 带in关键字的子查询 3 带exists关键字的子查询 二 连接查询 1 内连接

I have a table table1 like below. I want to find all H in Status field that is in between two L. The output for mentioned criteria should be 04/01/15, 05/01/15 and 07/01/15. How can I solve this?

Date          Status
01/01/15        A
02/01/15        H
03/01/15        L
04/01/15        H
05/01/15        H
06/01/15        L
07/01/15        H
08/01/15        L

解决方案

I think you can use a query like this:

SELECT 
    t.Date, t.Status
FROM 
    yourTable AS t
JOIN (
    SELECT MIN(Date) AS minDate, Max(Date) AS maxDate
    FROM yourTable
    WHERE Status = 'L') AS l
ON t.Date >= l.minDate
    AND t.Date <= l.maxDate
    AND t.Status <> 'L';