Using even more complex CTE query for testing
This commit is contained in:
		| @@ -1,29 +1,31 @@ | |||||||
| <!--% query_next_available_episode = ' | <!--% query_next_available_episode = ' | ||||||
|     WITH next_id AS ( |     WITH RECURSIVE | ||||||
| 	SELECT id, id + 1 AS id_next, date as last_date |     min_id AS ( | ||||||
| 	FROM eps | 	SELECT max(id) AS start_id FROM eps WHERE date <= date(\'now\') | ||||||
| 	WHERE eps.date > date(\'now\') |  | ||||||
|     ), |     ), | ||||||
|     free_slot AS ( |     max_id AS ( | ||||||
|  | 	SELECT max(id) AS end_id FROM eps | ||||||
|  |     ), | ||||||
|  |     cnt(x) AS ( | ||||||
|  | 	SELECT start_id from min_id | ||||||
|  | 	UNION ALL | ||||||
|  | 	SELECT x+1 FROM cnt | ||||||
|  | 	WHERE x+1 <= (SELECT end_id FROM max_id) | ||||||
|  |     ), | ||||||
|  |     first_empty AS ( | ||||||
| 	SELECT | 	SELECT | ||||||
| 	    last_date AS prev_date, | 	    cnt.x AS id | ||||||
| 	    CASE | 	FROM cnt | ||||||
| 		WHEN strftime(\'%w\',last_date) = \'5\' | 	LEFT JOIN eps e ON cnt.x = e.id | ||||||
| 		    THEN \'+3 days\' | 	WHERE e.id IS NULL | ||||||
| 		ELSE \'+1 days\' |  | ||||||
| 	    END AS date_offset, |  | ||||||
| 	    next_id.id_next AS empty_slot |  | ||||||
| 	FROM next_id |  | ||||||
| 	LEFT JOIN eps ON next_id.id_next = eps.id |  | ||||||
| 	WHERE eps.id IS NULL |  | ||||||
| 	ORDER BY next_id.id |  | ||||||
| 	LIMIT 1 |  | ||||||
|     ) |     ) | ||||||
|     SELECT |     SELECT | ||||||
| 	empty_slot AS next_id, | 	fe.id as empty_slot, | ||||||
| 	DATE (prev_date, date_offset) AS next_date, | 	(SELECT date(eps.date,\'+1 day\') from eps where id = fe.id-1) as slot_date, | ||||||
| 	printf(\'%i\',abs(julianday(DATE (prev_date, date_offset)) - julianday(\'now\') + 1)) AS delta_days | 	printf(\'%i\',abs(julianday((SELECT date(eps.date,\'+1 day\') from eps where id = fe.id-1)) - julianday(\'now\') + 1)) AS delta_days | ||||||
|     FROM free_slot |     FROM first_empty AS fe | ||||||
|  |     LEFT JOIN eps e ON fe.id = e.id | ||||||
|  |     LIMIT 1 | ||||||
| ' | ' | ||||||
| %--> | %--> | ||||||
| <!--% query_latest_episodes = ' | <!--% query_latest_episodes = ' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user