Files
prueba_tecnica_proxima/db/04_GetContractById.sql
2025-06-15 18:29:25 +02:00

25 lines
792 B
PL/PgSQL

DROP FUNCTION IF EXISTS public.get_contract_by_id(integer);
CREATE OR REPLACE FUNCTION public.get_contract_by_id(p_contract_id INTEGER)
RETURNS TABLE (
Id INTEGER,
ContractorIdNumber VARCHAR(20),
ContractorName VARCHAR(50),
ContractorSurname VARCHAR(100),
ContractInitDate TIMESTAMP,
RateId INTEGER,
RateName VARCHAR(100),
RatePrice MONEY
) AS $$
SELECT c.Id,
c.ContractorIdNumber,
c.ContractorName,
c.ContractorSurname,
c.ContractInitDate,
c.RateId,
r.Name AS RateName,
r.Price AS RatePrice
FROM public.Contracts c
JOIN public.Rates r ON r.Id = c.RateId
WHERE c.Id = p_contract_id;
$$ LANGUAGE SQL STABLE;