0

データベースにテーブルがあり、2つのレコードから集合的な日付を選択するクエリコードを記述したいと思います。

これはサンプルコードです:

テーブルは:

CREATE TABLE `user` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `startdate` date NOT NULL,
  `enddate` date NOT NULL,
  PRIMARY KEY (`userid`)
) 

例1と私はテーブルに2つのレコードを持っています。

(userid => 1、startdate => '2012-02-02'、enddate => '2012-10-02')(userid => 2、startdate => '2012-04-02'、enddate => '2012 -09-02')

クエリを選択して、範囲「2012-04-02」から「2012-09-02」までを指定したい

例2と私はテーブルに2つのレコードを持っています。

(userid => 1、startdate => '2012-02-02'、enddate => '2012-02-12')(userid => 2、startdate => '2012-04-02'、enddate => '2012 -09-02')

クエリを選択してnull範囲を指定したい

これに対する最良のクエリはありますか?

4

2 に答える 2

1

私がそれを正しく理解していて、これらの行の期間の交点である期間が必要な場合:

select * from
(
    select max(startdate) d1, min(enddate) d2 from user
) where d1<=d2
于 2012-12-19T10:29:59.747 に答える
0

私はこれがあなたが望むものだと思います、

  select userid,min(startdate),max(enddate),abs(max(enddate)-min(startdate)) as range 
  from user group by userid;
于 2012-12-19T10:19:07.467 に答える