count_equipment_by_user
Count the total amount of equipment items of a particular user.
There are two versions, one that counts all equipment and one that counts only those equipment items up to a given access rights setting.
To retrieve the total amount of equipment of a user.
CREATE FUNCTION count_equipment_by_user(integer) returns bigint AS ' select ((select count(identifier) from lens where users = $1) + (select count(identifier) from camera where users = $1) + (select count(identifier) from scanner where users = $1) + (select count(identifier) from film where users = $1) + (select count(identifier) from support where users = $1) + (select count(identifier) from flash where users = $1)) ' LANGUAGE 'sql';
CREATE FUNCTION count_equipment_by_user(integer, integer) returns bigint AS ' select ((select count(identifier) from lens where users = $1 and access_rights <= $2) + (select count(identifier) from camera where users = $1 and access_rights <= $2) + (select count(identifier) from scanner where users = $1 and access_rights <= $2) + (select count(identifier) from film where users = $1 and access_rights <= $2) + (select count(identifier) from support where users = $1 and access_rights <= $2) + (select count(identifier) from flash where users = $1 and access_rights <= $2)) ' LANGUAGE 'sql';
Version 2.5
Still in use
= Version 2.5 =
CREATE FUNCTION count_equipment_by_user(integer) returns bigint AS 'select ((select count(identifier) from lens where users = $1) + (select count(identifier) from camera where users = $1) + (select count(identifier) from flash where users = $1) + (select count(identifier) from scanner where users = $1) + (select count(identifier) from film where users = $1) + (select count(identifier) from support where users = $1) + (select count(identifier) from flash where users = $1))' LANGUAGE 'sql';
CREATE FUNCTION count_equipment_by_user(integer, integer) returns bigint AS 'select ((select count(identifier) from lens where users = $1 and access_rights <= $2) + (select count(identifier) from camera where users = $1 and access_rights <= $2) + (select count(identifier) from flash where users = $1 and access_rights <= $2) + (select count(identifier) from scanner where users = $1 and access_rights <= $2) + (select count(identifier) from film where users = $1 and access_rights <= $2) + (select count(identifier) from support where users = $1 and access_rights <= $2) + (select count(identifier) from flash where users = $1 and access_rights <= $2))' LANGUAGE 'sql';
= Version 2.34 =
---- Fix up a couple of bogus functions CREATE OR REPLACE FUNCTION count_equipment_by_user(integer) returns bigint AS ' select ((select count(identifier) from lens where users = $1) + (select count(identifier) from camera where users = $1) + (select count(identifier) from scanner where users = $1) + (select count(identifier) from film where users = $1) + (select count(identifier) from support where users = $1) + (select count(identifier) from flash where users = $1)) ' LANGUAGE 'sql'; CREATE OR REPLACE FUNCTION count_equipment_by_user(integer, integer) returns bigint AS ' select ((select count(identifier) from lens where users = $1 and access_rights <= $2) + (select count(identifier) from camera where users = $1 and access_rights <= $2) + (select count(identifier) from scanner where users = $1 and access_rights <= $2) + (select count(identifier) from film where users = $1 and access_rights <= $2) + (select count(identifier) from support where users = $1 and access_rights <= $2) + (select count(identifier) from flash where users = $1 and access_rights <= $2)) ' LANGUAGE 'sql';