wiki:UseCase4

Version 1 (modified by 212054, 10 days ago) ( diff )

--

Генерална состојба на објект

Интерфејс за преглед на генералната состојба на еден објект. Страната за преглед ќе содржи информации за тоа колку е потрошено на објектот, кој работел на него, кој снабдувал набавки, како и основни информации за самиот објект.

Складираната процедура би изгледала вака:

CREATE PROCEDURE GetObjektDetails(IN input_Objekt_ID INT)
BEGIN
    -- Opsti informacii za objektot
    SELECT 
        o.Objekt_ID,
        o.Tip AS Objekt_Type,
        o.Adresa AS Objekt_Address,
        vi.Budzet AS Objekt_Budget,
        GROUP_CONCAT(n.Nadzor_Ime SEPARATOR ', ') AS Nadzor_Names
    FROM 
        Objekt o
    LEFT JOIN 
        Vo_Izgradba vi ON o.Objekt_ID = vi.Objekt_ID
    LEFT JOIN 
        Nadgleduva nd ON o.Objekt_ID = nd.Objekt_ID
    LEFT JOIN 
        Nadzor n ON nd.Nadzor_Ime = n.Nadzor_Ime
    WHERE 
        o.Objekt_ID = input_Objekt_ID
    GROUP BY 
        o.Objekt_ID;

    -- Info za podizveduvacite koi rabotele na objektot
    SELECT 
        pn.Podizveduvac_Ime,
        TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) AS Total_Hours_Worked,
        TIMESTAMPDIFF(HOUR, FROM_UNIXTIME(rn.Od_vreme), FROM_UNIXTIME(rn.Do_vreme)) * pn.Saatnica AS Total_Cost
    FROM 
        Raboti_Na rn
    JOIN 
        Podizveduvac pn ON rn.Podizveduvac_Ime = pn.Podizveduvac_Ime
    WHERE 
        rn.Objekt_ID = input_Objekt_ID;

    -- Info za dobavuvachi
    SELECT 
        d.Dobavuvac_Ime,
        SUM(n.Cena) AS Total_Spent
    FROM 
        Nabavka n
    JOIN 
        Nameneta_Za nz ON n.Nabavka_ID = nz.Nabavka_ID
    JOIN 
        Ispolnuva i ON n.Nabavka_ID = i.Nabavka_ID
    JOIN 
        Dobavuvac d ON i.Dobavuvac_Ime = d.Dobavuvac_Ime
    WHERE 
        nz.Objekt_ID = input_Objekt_ID
    GROUP BY 
        d.Dobavuvac_Ime;
END
Note: See TracWiki for help on using the wiki.