wiki:UseCase4

Version 2 (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,
        n.Nadzor_Ime
    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 * n.Kolicina) 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.