BrickTracker/bricktracker/sql/set/base/full.sql

57 lines
1.7 KiB
MySQL
Raw Normal View History

{% extends 'set/base/base.sql' %}
{% block id %}
"bricktracker_sets"."id",
{% endblock %}
{% block total_missing %}
2025-01-31 20:46:36 +01:00
IFNULL("problem_join"."total_missing", 0) AS "total_missing",
{% endblock %}
{% block total_damaged %}
IFNULL("problem_join"."total_damaged", 0) AS "total_damaged",
{% endblock %}
{% block total_quantity %}
IFNULL("minifigures_join"."total", 0) AS "total_minifigures"
{% endblock %}
{% block join %}
2025-01-31 16:34:52 +01:00
{% if owners %}
LEFT JOIN "bricktracker_set_owners"
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_owners"."id"
{% endif %}
{% if statuses %}
LEFT JOIN "bricktracker_set_statuses"
2025-01-27 23:07:10 +01:00
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_statuses"."id"
{% endif %}
2025-01-31 18:08:53 +01:00
{% if tags %}
LEFT JOIN "bricktracker_set_tags"
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_tags"."id"
{% endif %}
-- LEFT JOIN + SELECT to avoid messing the total
LEFT JOIN (
SELECT
2025-01-28 19:18:51 +01:00
"bricktracker_parts"."id",
2025-01-31 20:46:36 +01:00
SUM("bricktracker_parts"."missing") AS "total_missing",
SUM("bricktracker_parts"."damaged") AS "total_damaged"
2025-01-28 19:18:51 +01:00
FROM "bricktracker_parts"
{% block where_missing %}{% endblock %}
2025-01-28 19:18:51 +01:00
GROUP BY "bricktracker_parts"."id"
2025-01-31 20:46:36 +01:00
) "problem_join"
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "problem_join"."id"
-- LEFT JOIN + SELECT to avoid messing the total
LEFT JOIN (
SELECT
2025-01-27 23:07:10 +01:00
"bricktracker_minifigures"."id",
2025-01-27 18:39:35 +01:00
SUM("bricktracker_minifigures"."quantity") AS "total"
FROM "bricktracker_minifigures"
{% block where_minifigures %}{% endblock %}
2025-01-27 23:07:10 +01:00
GROUP BY "bricktracker_minifigures"."id"
) "minifigures_join"
2025-01-27 23:07:10 +01:00
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "minifigures_join"."id"
{% endblock %}