Welcome to Sign in | Help
in Search

fraza SQL

Last post 05-11-2008, 9:57 PM by B_gd_n[ ]Sahlean. 8 replies.
Sort Posts: Previous Next
  •  05-11-2008, 2:04 PM 4846

    fraza SQL

    am un query ca cel din exemplu.
    dar daca vreau sa adaug la rezultatul acestuia inca o coloana, in care sa calculeze pretul pentru acea componenta cum ar trebui sa procedez?
    ex.: blat de 100 grame, cu pretul/kg 20 lei, in a 4-a coloana as vrea sa apara 2. ca formula, ar fi (gramaj*pretComponentaPerKg)/1000, dar cum adaug o a 4-a coloana, in care sa fie calculat acest pret?

    Fisierul pe care vroiam sa il atasez(dar nu a mers): http://uploaded.to/?id=m6akt6
    Filed under:
  •  05-11-2008, 3:33 PM 4847 in reply to 4846

    Re: fraza SQL

    Interogarea originala este:

    SELECT
    C.numeComponenta,
    R.gramaj,
    D.pretComponentaPerKg
    FROM pizza AS P,
    reteta AS R,
    componente AS C,
    CostComponente AS D
    WHERE
    P.idPizza=R.idPizza
    And r.idcomponenta=c.idcomponenta
    And C.idComponenta=D.idComponenta
    and p.tippizza='capriciosa';

    Un posibil raspuns este:

    SELECT
    C.numeComponenta,
    R.gramaj,
    D.pretComponentaPerKg,
    (R.gramaj * D.pretComponentaPerKg)/1000 AS Price
    FROM pizza AS P,
    reteta AS R,
    componente AS C,
    CostComponente AS D
    WHERE
    P.idPizza=R.idPizza
    And r.idcomponenta=c.idcomponenta
    And C.idComponenta=D.idComponenta
    and p.tippizza='capriciosa';


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  05-11-2008, 7:41 PM 4850 in reply to 4847

    Re: fraza SQL

    mersi, dar daca in Reteta am pentru capriciosa sau orice alt tip de pizza mai multe gramaje, imi apar toate, nu doar cel corespunzator componentei.
    de exemplu, imi afiseaza asa:
    http://img106.imageshack.us/my.php?image=resulteg9.jpg
    sau daca in Reteta am o singura componenta pentru o anumita pizza, nu mi-o afiseaza in urma select-ului.
  •  05-11-2008, 8:13 PM 4851 in reply to 4850

    Re: fraza SQL

    In principiu folositi tot o coloana calculata.

    Formula pentru coloana depinde de logica aplicatiei care personal imi scapa.

    Eventual puteti lua in calcul folosirea GROUP BY.


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  05-11-2008, 8:15 PM 4852 in reply to 4851

    Re: fraza SQL

    formula pentru coloana este buna, de calcul a unei componente la un anumit gramaj, stiind pretul/kg.
    inca ceva, daca pretul/kg este 20, iar o componenta are 210 gr., cum se calculeaza in acea coloana calculata cu virgula? sau se poate doar cu numere intregi? unde nu se imparte exact, imi da 0
  •  05-11-2008, 8:35 PM 4853 in reply to 4847

    Re: fraza SQL

    xmldeveloper:

    Interogarea originala este:

    SELECT
    C.numeComponenta,
    R.gramaj,
    D.pretComponentaPerKg
    FROM pizza AS P,
    reteta AS R,
    componente AS C,
    CostComponente AS D
    WHERE
    P.idPizza=R.idPizza
    And r.idcomponenta=c.idcomponenta
    And C.idComponenta=D.idComponenta
    and p.tippizza='capriciosa';

    Un posibil raspuns este:

    SELECT
    C.numeComponenta,
    R.gramaj,
    D.pretComponentaPerKg,
    (R.gramaj * D.pretComponentaPerKg)/1000 AS Price
    FROM pizza AS P,
    reteta AS R,
    componente AS C,
    CostComponente AS D
    WHERE
    P.idPizza=R.idPizza
    And r.idcomponenta=c.idcomponenta
    And C.idComponenta=D.idComponenta
    and p.tippizza='capriciosa';

    ...aici cred ca trebuie sa selectezi si o reteta anume - se pare ca pentru "capriciosa" exista mai multe retete (???).

  •  05-11-2008, 8:50 PM 4854 in reply to 4853

    Re: fraza SQL

    pentru capriciosa da, exista mai multe componente, cu gramajele aferente. dar de ce sa selectez o reteta anume? eu vreau sa selectez o pizza(dupa id sau tip, nu conteaza) si sa-mi afiseze reteta, adica toate componentele, si gramajele, dar si acel camp calculat, valoare. se pare ca, campul da 0 daca impartirea nu se face exact
  •  05-11-2008, 9:09 PM 4855 in reply to 4854

    Re: fraza SQL

    am reusit in cele din urma, mersi oricum :)
  •  05-11-2008, 9:57 PM 4856 in reply to 4854

    Re: fraza SQL

    Talkabout:
    pentru capriciosa da, exista mai multe componente, cu gramajele aferente. dar de ce sa selectez o reteta anume? eu vreau sa selectez o pizza(dupa id sau tip, nu conteaza) si sa-mi afiseze reteta, adica toate componentele, si gramajele, dar si acel camp calculat, valoare. se pare ca, campul da 0 daca impartirea nu se face exact

    Pentru că - de exemplu - unele sunt cantităţile pentru o pizza de 26 cm şi alte sunt cantităţile pentru o pizza de 36 cm.

    În fine ... depinde de cum ai proiectat baza de date.
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems