Bonjour,

j'ai 2 tables, dont voici un extrait (suffisant pour faire des tests) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
CREATE TABLE IF NOT EXISTS `sell_offers` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `sell_id` int(11) unsigned NOT NULL,
  `name` varchar(100) NOT NULL,
  `length` tinyint(8) unsigned NOT NULL,
  `child_option` float unsigned default NULL,
  `active` tinyint(3) unsigned NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=135 ;
 
--
-- Dumping data for table `sell_offers`
--
 
INSERT INTO `sell_offers` (`id`, `sell_id`, `name`, `length`, `child_option`, `active`) VALUES
(129, 65, '1', 2, NULL, 1),
(130, 65, '2', 8, NULL, 1),
(134, 65, '3', 7, NULL, 1);
 
 
 
-- phpMyAdmin SQL Dump
-- version 3.3.9.2
-- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
--
-- Host: localhost
-- Generation Time: Mar 23, 2011 at 12:48 PM
-- Server version: 5.0.84
-- PHP Version: 5.2.10
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
--
-- Database: `suiteprivee_wip`
--
 
-- --------------------------------------------------------
 
--
-- Table structure for table `sell_nights`
--
 
CREATE TABLE IF NOT EXISTS `sell_nights` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `sell_offer_id` int(11) unsigned NOT NULL,
  `date` date NOT NULL,
  `price` float unsigned NOT NULL,
  `public_price` float unsigned NOT NULL,
  `full` tinyint(8) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5647 ;
 
--
-- Dumping data for table `sell_nights`
--
 
INSERT INTO `sell_nights` (`id`, `sell_offer_id`, `date`, `price`, `public_price`, `full`) VALUES
(5509, 129, '2011-03-12', 320, 420, 0),
(5510, 129, '2011-03-14', 320, 420, 0),
(5511, 129, '2011-03-16', 320, 420, 0),
(5512, 129, '2011-03-18', 320, 420, 0),
(5513, 129, '2011-03-20', 320, 420, 0),
(5514, 129, '2011-03-22', 320, 420, 0),
(5515, 129, '2011-03-24', 320, 420, 0),
(5516, 129, '2011-03-26', 320, 420, 0),
(5517, 129, '2011-03-28', 320, 420, 0),
(5518, 129, '2011-03-30', 320, 420, 0),
(5519, 129, '2011-04-01', 320, 420, 0),
(5520, 129, '2011-04-03', 320, 420, 0),
(5521, 129, '2011-04-05', 320, 420, 0),
(5522, 129, '2011-04-07', 320, 420, 0),
(5523, 129, '2011-04-09', 320, 420, 0),
(5524, 129, '2011-04-11', 320, 420, 0),
(5525, 129, '2011-04-13', 320, 420, 0),
(5526, 129, '2011-04-15', 320, 420, 0),
(5527, 129, '2011-04-17', 320, 420, 0),
(5528, 129, '2011-04-19', 320, 420, 0),
(5529, 129, '2011-04-25', 320, 420, 0),
(5530, 129, '2011-04-27', 320, 420, 0),
(5531, 129, '2011-04-29', 320, 420, 0),
(5532, 129, '2011-05-01', 320, 420, 0),
(5533, 129, '2011-05-03', 320, 420, 0),
(5534, 129, '2011-05-05', 320, 420, 0),
(5535, 129, '2011-05-07', 320, 420, 0),
(5536, 129, '2011-05-09', 320, 420, 0),
(5537, 129, '2011-05-11', 320, 420, 0),
(5538, 129, '2011-05-13', 320, 420, 0),
(5539, 129, '2011-05-15', 320, 420, 0),
(5540, 129, '2011-05-17', 320, 420, 0),
(5541, 129, '2011-05-19', 320, 420, 0),
(5542, 129, '2011-05-21', 320, 420, 0),
(5543, 129, '2011-05-23', 320, 420, 0),
(5544, 129, '2011-05-25', 320, 420, 0),
(5545, 129, '2011-05-27', 320, 420, 0),
(5546, 129, '2011-05-30', 320, 420, 0),
(5547, 130, '2011-03-12', 1060, 1470, 0),
(5548, 130, '2011-03-25', 1060, 1470, 0),
(5549, 130, '2011-04-02', 1060, 1470, 0),
(5550, 130, '2011-04-10', 1060, 1470, 0),
(5551, 130, '2011-04-26', 1060, 1470, 0),
(5552, 130, '2011-05-04', 1060, 1470, 0),
(5553, 130, '2011-05-12', 1060, 1470, 0),
(5554, 130, '2011-05-20', 1060, 1470, 0),
(5555, 130, '2011-05-28', 1060, 1470, 0),
(5646, 134, '2011-03-26', 500, 1000, 0);
Elles sont liées entre elles par sell_nights.sell_offer_id = sell_offers.id

Pour une sell_offers.sell_id donnée, je souhaite récupérer :

- les sell_nights.date MIN et MAX (ça, aucun problème).
- une nouvelle date MAX, calculée en ajoutant à MAX(sell_nights.date) la sell_offers.length MAX (qui est en fait un nombre de jours)

Voici ma requête actuelle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT MIN(sell_nights.date) AS min_date, MAX(sell_nights.date) AS max_date, MAX(sell_offers.length) AS max_length, DATE_ADD(max_date, INTERVAL max_length DAY) AS test
FROM sell_nights, sell_offers 
WHERE sell_nights.date >= CURDATE() AND sell_nights.sell_offer_id = sell_offers.id AND sell_offers.sell_id = 65;
Celle-ci fonctionne, elle me récupère le tableau suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
[dates_range] => Array
                (
                    [min_date] => 2011-03-24
                    [max_date] => 2011-05-30
                    [max_length] => 8
                )
Mais si je rajoute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MAX(DATE_ADD(max_date, INTERVAL max_length DAY)) AS max_end_date
en fin de SELECT, la requête ne me renvoie plus rien.

Une idée de comment récupérer cette fameuse max_end_date, équivalente à max_date + length DAYS ?