Massive rewrite
This commit is contained in:
31
bricktracker/sql/minifigure/base/select.sql
Normal file
31
bricktracker/sql/minifigure/base/select.sql
Normal file
@@ -0,0 +1,31 @@
|
||||
SELECT
|
||||
minifigures.fig_num,
|
||||
minifigures.set_num,
|
||||
minifigures.name,
|
||||
minifigures.quantity,
|
||||
minifigures.set_img_url,
|
||||
minifigures.u_id,
|
||||
{% block total_missing %}
|
||||
NULL AS total_missing, -- dummy for order: total_missing
|
||||
{% endblock %}
|
||||
{% block total_quantity %}
|
||||
NULL AS total_quantity, -- dummy for order: total_quantity
|
||||
{% endblock %}
|
||||
{% block total_sets %}
|
||||
NULL AS total_sets -- dummy for order: total_sets
|
||||
{% endblock %}
|
||||
FROM minifigures
|
||||
|
||||
{% block join %}{% endblock %}
|
||||
|
||||
{% block where %}{% endblock %}
|
||||
|
||||
{% block group %}{% endblock %}
|
||||
|
||||
{% if order %}
|
||||
ORDER BY {{ order }}
|
||||
{% endif %}
|
||||
|
||||
{% if limit %}
|
||||
LIMIT {{ limit }}
|
||||
{% endif %}
|
||||
2
bricktracker/sql/minifigure/delete/all_from_set.sql
Normal file
2
bricktracker/sql/minifigure/delete/all_from_set.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
DELETE FROM minifigures
|
||||
WHERE u_id IS NOT DISTINCT FROM :u_id
|
||||
15
bricktracker/sql/minifigure/insert.sql
Normal file
15
bricktracker/sql/minifigure/insert.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
INSERT INTO minifigures (
|
||||
fig_num,
|
||||
set_num,
|
||||
name,
|
||||
quantity,
|
||||
set_img_url,
|
||||
u_id
|
||||
) VALUES (
|
||||
:fig_num,
|
||||
:set_num,
|
||||
:name,
|
||||
:quantity,
|
||||
:set_img_url,
|
||||
:u_id
|
||||
)
|
||||
34
bricktracker/sql/minifigure/list/all.sql
Normal file
34
bricktracker/sql/minifigure/list/all.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block total_missing %}
|
||||
SUM(IFNULL(missing_join.total, 0)) AS total_missing,
|
||||
{% endblock %}
|
||||
|
||||
{% block total_quantity %}
|
||||
SUM(IFNULL(minifigures.quantity, 0)) AS total_quantity,
|
||||
{% endblock %}
|
||||
|
||||
{% block total_sets %}
|
||||
COUNT(minifigures.set_num) AS total_sets
|
||||
{% endblock %}
|
||||
|
||||
{% block join %}
|
||||
-- LEFT JOIN + SELECT to avoid messing the total
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
set_num,
|
||||
u_id,
|
||||
SUM(quantity) AS total
|
||||
FROM missing
|
||||
GROUP BY
|
||||
set_num,
|
||||
u_id
|
||||
) missing_join
|
||||
ON minifigures.u_id IS NOT DISTINCT FROM missing_join.u_id
|
||||
AND minifigures.fig_num IS NOT DISTINCT FROM missing_join.set_num
|
||||
{% endblock %}
|
||||
|
||||
{% block group %}
|
||||
GROUP BY
|
||||
minifigures.fig_num
|
||||
{% endblock %}
|
||||
6
bricktracker/sql/minifigure/list/from_set.sql
Normal file
6
bricktracker/sql/minifigure/list/from_set.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block where %}
|
||||
WHERE u_id IS NOT DISTINCT FROM :u_id
|
||||
AND set_num IS NOT DISTINCT FROM :set_num
|
||||
{% endblock %}
|
||||
17
bricktracker/sql/minifigure/list/last.sql
Normal file
17
bricktracker/sql/minifigure/list/last.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block total_missing %}
|
||||
SUM(IFNULL(missing.quantity, 0)) AS total_missing,
|
||||
{% endblock %}
|
||||
|
||||
{% block join %}
|
||||
LEFT JOIN missing
|
||||
ON minifigures.fig_num IS NOT DISTINCT FROM missing.set_num
|
||||
AND minifigures.u_id IS NOT DISTINCT FROM missing.u_id
|
||||
{% endblock %}
|
||||
|
||||
{% block group %}
|
||||
GROUP BY
|
||||
minifigures.fig_num,
|
||||
minifigures.u_id
|
||||
{% endblock %}
|
||||
15
bricktracker/sql/minifigure/list/missing_part.sql
Normal file
15
bricktracker/sql/minifigure/list/missing_part.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block where %}
|
||||
WHERE minifigures.fig_num IN (
|
||||
SELECT
|
||||
missing.set_num
|
||||
FROM missing
|
||||
|
||||
WHERE missing.color_id IS NOT DISTINCT FROM :color_id
|
||||
AND missing.element_id IS NOT DISTINCT FROM :element_id
|
||||
AND missing.part_num IS NOT DISTINCT FROM :part_num
|
||||
|
||||
GROUP BY missing.set_num
|
||||
)
|
||||
{% endblock %}
|
||||
15
bricktracker/sql/minifigure/list/using_part.sql
Normal file
15
bricktracker/sql/minifigure/list/using_part.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block where %}
|
||||
WHERE minifigures.fig_num IN (
|
||||
SELECT
|
||||
inventory.set_num
|
||||
FROM inventory
|
||||
|
||||
WHERE inventory.color_id IS NOT DISTINCT FROM :color_id
|
||||
AND inventory.element_id IS NOT DISTINCT FROM :element_id
|
||||
AND inventory.part_num IS NOT DISTINCT FROM :part_num
|
||||
|
||||
GROUP BY inventory.set_num
|
||||
)
|
||||
{% endblock %}
|
||||
38
bricktracker/sql/minifigure/select/generic.sql
Normal file
38
bricktracker/sql/minifigure/select/generic.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block total_missing %}
|
||||
SUM(IFNULL(missing_join.total, 0)) AS total_missing,
|
||||
{% endblock %}
|
||||
|
||||
{% block total_quantity %}
|
||||
SUM(IFNULL(minifigures.quantity, 0)) AS total_quantity,
|
||||
{% endblock %}
|
||||
|
||||
{% block total_sets %}
|
||||
COUNT(minifigures.set_num) AS total_sets
|
||||
{% endblock %}
|
||||
|
||||
{% block join %}
|
||||
-- LEFT JOIN + SELECT to avoid messing the total
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
set_num,
|
||||
u_id,
|
||||
SUM(quantity) AS total
|
||||
FROM missing
|
||||
GROUP BY
|
||||
set_num,
|
||||
u_id
|
||||
) missing_join
|
||||
ON minifigures.u_id IS NOT DISTINCT FROM missing_join.u_id
|
||||
AND minifigures.fig_num IS NOT DISTINCT FROM missing_join.set_num
|
||||
{% endblock %}
|
||||
|
||||
{% block where %}
|
||||
WHERE fig_num IS NOT DISTINCT FROM :fig_num
|
||||
{% endblock %}
|
||||
|
||||
{% block group %}
|
||||
GROUP BY
|
||||
minifigures.fig_num
|
||||
{% endblock %}
|
||||
7
bricktracker/sql/minifigure/select/specific.sql
Normal file
7
bricktracker/sql/minifigure/select/specific.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
{% extends 'minifigure/base/select.sql' %}
|
||||
|
||||
{% block where %}
|
||||
WHERE fig_num IS NOT DISTINCT FROM :fig_num
|
||||
AND u_id IS NOT DISTINCT FROM :u_id
|
||||
AND set_num IS NOT DISTINCT FROM :set_num
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user