12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- SET title = 'Groups';
- SET products = COALESCE($products, sqlpage.cookie('products'));
- DROP TABLE IF EXISTS sqlpage_groups;
- CREATE TEMPORARY TABLE IF NOT EXISTS sqlpage_groups AS (
- SELECT
- count(DISTINCT p.id) AS "Products",
- count(DISTINCT c.id) AS "Categories",
- count(DISTINCT g.id) AS "Groups",
- p.name AS product,
- c.name AS category,
- g.name AS "group"
- FROM products p
- JOIN categories c ON p.category_id = c.id
- JOIN groups g ON c.group_id = g.id
- WHERE
- (p.name IN (SELECT v
- AND
- (c.name IN (SELECT v
- AND
- (g.name IN (SELECT v
- GROUP BY ROLLUP ("group", category, product)
- );
- SET product_options = (
- SELECT
- json_agg(json_build_object(
- 'label', value,
- 'value', value,
- 'selected', value IN (SELECT v
- ) ORDER BY value)
- FROM (
- SELECT v
- FROM json_array_elements($products::json) j(v)
- UNION
- SELECT product
- FROM sqlpage_groups
- ) o(value)
- WHERE value IS NOT NULL
- );
- SELECT 'dynamic' AS component, sqlpage.run_sql('cookie.sql') AS properties;
- SELECT 'dynamic' AS component, sqlpage.run_sql('theme.sql') AS properties;
- SELECT 'dynamic' AS component, sqlpage.run_sql('nav.sql') AS properties;
- SELECT
- 'table' AS component,
- TRUE AS search,
- TRUE AS striped_rows,
- TRUE AS small,
- 'Notice' AS markdown
- ;
- SELECT
- "Products",
- "Categories",
- COALESCE("group", "Groups"||'') "Group"
- FROM sqlpage_groups q
- WHERE q.category IS NULL
- ORDER BY product, category, "group"
- ;
- SELECT '# No Data' AS "Notice"
- WHERE NOT EXISTS(SELECT * FROM sqlpage_groups LIMIT 1);
|