· 8 years ago · Jul 23, 2018, 11:04 AM
1SELECT val, campaign FROM values
2LEFT JOIN (SELECT campaign, start, end FROM (
3 ('Spring 2104', '2014-05-01', '2014-08-01'),
4 ('Winter 2014', '2014-08-01', '2014-12-31')
5) as campaign_table ON (
6 values.date > campaign_table.start AND
7 values.date < campaign_table.end
8)
9
10SELECT val
11 ,campaign
12FROM
13VALUES
14LEFT JOIN (
15 SELECT 'Spring 2104' campaign
16 ,'2014-05-01' start
17 ,'2014-08-01' [end]
18
19 UNION ALL
20
21 SELECT 'Winter 2014'
22 ,'2014-08-01'
23 ,'2014-12-31'
24 ) AS campaign_table ON
25VALUES.DATE > campaign_table.start
26 AND
27VALUES.DATE < campaign_table.[end]
28
29CREATE TABLE IF NOT EXISTS `tempo`( `campaign_name` VARCHAR(100), `from` DATE, `to` DATE );
30INSERT INTO tempo(campaign_name, `start`, `end`) VALUES ('Spring 2104', '2014-05-01', '2014-08-01'),('Winter 2014', '2014-08-01', '2014-12-31');
31SELECT t1.val, t1.campaign, t2.campaign_name FROM `values` t1, `tempo` t2 WHERE t1.date BETWEEN t2.start AND t2.end;
32DROP TABLE `tempo`;