mocha/sql/mysql/001-procedures/mocha_get_attribute_value.sql

30 lines
862 B
SQL

DROP PROCEDURE IF EXISTS mocha_get_attribute_value;
CREATE PROCEDURE mocha_get_attribute_value
(
IN p_source_inst_id INT,
IN p_attribute_inst_id INT,
IN p_effective_date DATETIME
)
BEGIN
DECLARE p_tenant_id INT;
DECLARE z_effective_date DATETIME;
SET p_tenant_id = mocha_get_current_tenant();
IF p_effective_date IS NULL THEN
SET z_effective_date = NOW();
ELSE
SET z_effective_date = p_effective_date;
END IF;
SELECT att_value FROM mocha_attributes
WHERE (tenant_id = p_tenant_id OR tenant_id IN (SELECT target_tenant_id FROM mocha_tenant_references WHERE source_tenant_id = p_tenant_id))
AND src_inst_id = p_source_inst_id
AND att_inst_id = p_attribute_inst_id
AND att_effective_date <= z_effective_date
ORDER BY tenant_id DESC, att_effective_date DESC, id DESC
LIMIT 1;
END;