SQLITE3> -- Lista un personaggio e tutte le armi
WITH cte AS (
SELECT
Personaggio.Personaggio_ID,
Personaggio.Name,
sum(cast(CharactersInventory.Valore AS Integer)) AS "ModArmatura",
CompleteModifiers.Modifier AS "DEX",
CASE
WHEN CompleteModifiers.Sistema = "Pathfinder 1e" THEN 10
WHEN CompleteModifiers.Sistema = "Custom (Pirati by Gige)" THEN 10
ELSE 0 END AS BaseBonus,
CASE
WHEN Personaggio.Size = 1 THEN -8
WHEN Personaggio.Size = 2 THEN -4
WHEN Personaggio.Size = 3 THEN -2
WHEN Personaggio.Size = 4 THEN -1
WHEN Personaggio.Size = 5 THEN 1
WHEN Personaggio.Size = 6 THEN 2
WHEN Personaggio.Size = 7 THEN 4
WHEN Personaggio.Size = 8 THEN 8
ELSE 0
END AS "Taglia"
FROM Personaggio
LEFT JOIN CharactersInventory ON Personaggio.Personaggio_ID = CharactersInventory.Propretario AND (CharactersInventory.TipoID = 2 AND CharactersInventory.Equipaggiato > 0 )
LEFT JOIN CompleteModifiers ON Personaggio.Personaggio_ID = CompleteModifiers.PersonaggioID AND (CompleteModifiers.StatisticaID = 2 OR CompleteModifiers.StatisticaID = 10)
GROUP BY CharactersInventory.TipoID, Personaggio.Personaggio_ID
)
SELECT *, coalesce(cte.ModArmatura, 0)+coalesce(cte.DEX, 0)+cte.BaseBonus + cte.Taglia AS "CA" FROM cte
WHERE cte.Personaggio_ID = :id
LIMIT :offset, :entries;