sau Inregistrare
  
  • 2 Pagini +
  • 1
  • 2
  • Nu poti crea un subiect nou
  • Nu puteti raspunde pe acest topic

fraza SQL Evaluare topic: - - - - -

#1 Utilizator offline   Talkabout 

  • Boboc
  • Pip
  • Grup: Members
  • Mesaje: 9
  • Inregistrat: 22-August 07

  Scris 11 May 2008 - 12:57 PM

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?

p.s. rename la fisier in Ex.mdb

Fisiere atasate

  • Fisier atasat  Ex.txt (312K)
    Number of downloads: 9

0

#2 Utilizator offline   Paul Brahtl 

  • Orhidee
  • PipPipPipPipPipPip
  • Grup: Moderator Global
  • Mesaje: 1.933
  • Inregistrat: 25-July 07

Scris 11 May 2008 - 06:02 PM

Ce anume te intereseaza: cum adaugi in Access o coloana calculata la un query, sau cum adaugi in SQL o coloana calculata?

am modificat in exemplul tau ca sa-ti dea si a patra coloana
simultan ti-am transformat si legaturile dintre tabele din clauza WHERE in INNER JOIN

Fisiere atasate

  • Fisier atasat  Ex.txt (312K)
    Number of downloads: 5

0

#3 Utilizator offline   Talkabout 

  • Boboc
  • Pip
  • Grup: Members
  • Mesaje: 9
  • Inregistrat: 22-August 07

Scris 11 May 2008 - 06:57 PM

ma intereseaza cum adaug o coloana calculata, eu am o baza de date in sql server 2005 sai nu stiu acolo cum s-ar face, in Access nu e asa greu, mersi oricum
ai idee cum s-ar face din fraze sql acest lucru?


am gasit, si fraza SQL
inca o intrebare, daca m-ai putea ajuta ti-as fi recunoscator.
am atasat un avelasi exemplu, putin modificat la diagrama E-R.
cum as putea face ca atunci cand introduc o anumita pizza, si automat si componentele ei, sa nu se poata introduce pentru o pizza 2 componente care sunt incompatibile(care se afla in Incompatibilitati), deci sa nu ma lase sa introduc.
ex.: blat cu branza nu vreau sa le pot introduce pentru acelasi tip de Pizza. s-ar putea face asa ceva?
Mersi :airkiss:

oare acel Query de ce nu functioneaza cum trebuie si pe SQL Server 2005? nu primesc ceea ce trebuie, cand rulez acel query intr-o procedura stocata, iar in Access merge ok

Fisiere atasate

  • Fisier atasat  Ex.txt (312K)
    Number of downloads: 1

0

#4 Utilizator offline   Paul Brahtl 

  • Orhidee
  • PipPipPipPipPipPip
  • Grup: Moderator Global
  • Mesaje: 1.933
  • Inregistrat: 25-July 07

Scris 11 May 2008 - 07:23 PM

Pentru SQL 2005 pune varianta asta:

SELECT C.numeComponenta, R.gramaj, D.pretComponentaPerKg, R.gramaj*D.pretcomponentaperkg/1000 AS valoare
FROM pizza AS P
INNER JOIN reteta AS R ON R.idPizza=P.idPizza
INNER JOIN componente AS C ON R.idComponenta=C.idComponenta
INNER JOIN CostComponente AS D ON C.idComponenta = D.idComponenta
WHERE P.tipPizza='capriciosa';
0

#5 Utilizator offline   Talkabout 

  • Boboc
  • Pip
  • Grup: Members
  • Mesaje: 9
  • Inregistrat: 22-August 07

Scris 11 May 2008 - 07:23 PM

am incercat pentru SQL Server 2005. si pentru pizza capriciosa,(de exmplu) mi-a afisat: numeComponenta Carnati(e ok, dar nu doar componenta asta o are), gramaj 50(ok), pretComponentaPerKg 11(ok), valoare 0(nu stiu de ce, probabil nu calculeaza cu virgula? merge doar pentru impartiri exacte?)

USE [pizzerie]
GO
/****** Object:  StoredProcedure [dbo].[GetComponentsForPizza]	Script Date: 05/11/2008 20:28:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[GetComponentsForPizza]
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Insert statements for procedure here
SELECT C.numeComponenta, R.gramaj, D.pretComponentaPerKg, R.gramaj*D.pretcomponentaperkg/1000 AS valoare
FROM pizza AS P 
INNER JOIN reteta AS R ON R.idPizza=P.idPizza
INNER JOIN componente AS C ON R.idComponenta=C.idComponenta
INNER JOIN CostComponente AS D ON C.idComponenta = D.idComponenta
WHERE P.tipPizza='sunca';
END

cam asta e procedura stocata

Aceasta postare a fost editata de Talkabout: 11 May 2008 - 07:25 PM

0

#6 Utilizator offline   Paul Brahtl 

  • Orhidee
  • PipPipPipPipPipPip
  • Grup: Moderator Global
  • Mesaje: 1.933
  • Inregistrat: 25-July 07

Scris 11 May 2008 - 07:53 PM

Vezi postareaTalkabout, la May 11 2008, 07:57 PM, a spus:

cum as putea face ca atunci cand introduc o anumita pizza, si automat si componentele ei, sa nu se poata introduce pentru o pizza 2 componente care sunt incompatibile(care se afla in Incompatibilitati), deci sa nu ma lase sa introduc.


pentru lista de componente de adaugat la o pizza poti folosi urmatoarea procedura

create procedure GetComponente(@idPizza) as
select Componente.*
from Componente
where not idComponenta in
(select I.idComponenta2 from Reteta inner join Incompatibilitati as I on Reteta.idComponenta=I.idComponenta1
where reteta.idPizza=@idPizza
union select I.idComponenta1 from Reteta inner join Incompatibilitati as I on Reteta.idComponenta=I.idComponenta2
where reteta.idPizza=@idPizza)

Vezi postareaTalkabout, la May 11 2008, 08:23 PM, a spus:

am incercat pentru SQL Server 2005. si pentru pizza capriciosa,(de exmplu) mi-a afisat: numeComponenta Carnati(e ok, dar nu doar componenta asta o are), gramaj 50(ok), pretComponentaPerKg 11(ok), valoare 0(nu stiu de ce, probabil nu calculeaza cu virgula? merge doar pentru impartiri exacte?)

Daca ai mai multe componente definite la o reteta si iti aduce doar o inregistrare, verifica sa ai si pretul introdus la ele.
Pentru valoarea 0 verifica ce tip de date ai la gramaj si la pretComponentaPerKg.

Aceasta postare a fost editata de Paul Brahtl: 11 May 2008 - 07:34 PM

0

#7 Utilizator offline   Talkabout 

  • Boboc
  • Pip
  • Grup: Members
  • Mesaje: 9
  • Inregistrat: 22-August 07

Scris 11 May 2008 - 07:56 PM

tipul de date e int, asa e, m-am lamurit.
intr-adevar, nu am pretul/kg al tututor componentelor.
am executat procedura de mai sus GetComponente, si merge, daca pentru idPizza=8 introduc in Retete componentele 2 si 15 (aflate in Incompatibilitati), dupa ce execut procedura imi afiseaza toate componentele, mai putin cea cu id 2 si 15. dar eu am introdus manual in Reteta aceste componente pentru pizza cu id-ul 8. dar fiind incompatibile, cum pot face sa nu ma lase sa introduc?
adica scriu:
idPizza - 8
componenta - 2
gramaj- 200
pe urmatorul rand
idPizza= tot 8
componenta - 15
gramaj - 150
si daca trec la randul urmator, pare totul ok, dar 2 si 15 sunt incompatibile, deci la introducere as vrea sa nu ma lase :P
e posibil?
0

#8 Utilizator offline   Talkabout 

  • Boboc
  • Pip
  • Grup: Members
  • Mesaje: 9
  • Inregistrat: 22-August 07

Scris 11 May 2008 - 09:04 PM

cred ca e mai greu, ca verificarea din sql sa se faca la introducere date in Reteta direct, sau se poate?
0

#9 Utilizator offline   Paul Brahtl 

  • Orhidee
  • PipPipPipPipPipPip
  • Grup: Moderator Global
  • Mesaje: 1.933
  • Inregistrat: 25-July 07

Scris 12 May 2008 - 08:05 AM

Restrictia din Incompatibilitati se implementeaza la nivelul interfetei de program, nu la nivelul bazei de date.
Pentru asta ti-am dat GetComponente, ca sa nu pui utilizatorului la dispozitie in lista de componente de adaugat la reteta, componente incompatibile cu cele deja adaugate.
0

#10 Utilizator offline   Talkabout 

  • Boboc
  • Pip
  • Grup: Members
  • Mesaje: 9
  • Inregistrat: 22-August 07

Scris 12 May 2008 - 09:01 AM

cum adaug la acel Query2 inca 2 coloane? una pentru costul manoperei pentru fiecare tip de pizza,si una cu suma dintre ultimele 2 coloane?(suma dintre valoare si cost manopera)?
am incercat dupa primul model, dar nu am reusit
am atasat fisierul, rename in .mdb
m-ai putea ajuta cu chestia asta?
mersi:)

Fisiere atasate

  • Fisier atasat  Ex.txt (340K)
    Number of downloads: 4

0

Reclama



Impartaseste acest subiect:


  • 2 Pagini +
  • 1
  • 2
  • Nu poti crea un subiect nou
  • Nu puteti raspunde pe acest topic


Subiecte similare Collapse

  Topic Deschis de Replici Vizualizari
Replici noi excel minas  1 2.174
Replici noi problema cu acronis CoSsMy  0 1.311
Replici noi Un pic de ajutor cu SQL
SQL queries
thecalm  2 2.441
Replici noi powerpoint Anchen  1 1.217
Replici noi access
nu ma lasa sa lucrez cu cod - da o eroare
bacara  0 2.004