Ajuda a construír query

26/05/2004 - 19:07 por Ticrito | Informe spam
Olá

Tengo las seguintes querys que individualmente funcionam:

da-me o peso total das vagonas com o CodMat=1, CodMat=2.

Pretendo com uma só query, somar o resultado da
query1+query2+query3...+query30, e apresentar numa tabela.

Dim Peso(30) as Integer

Peso(1) = 10
Peso(2) = 101
Peso(3) = 123
Peso(4) = 50

Peso(30) = 56

strQuery1 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(1) & ") as
Vagonas From RegVag where CodMat = 1 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

strQuery2 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(2) & ") as
Vagonas From RegVag where CodMat = 2 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

strQuery3 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(3) & ") as
Vagonas From RegVag where CodMat = 3 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"
..

strQuery30 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(30) & ")
as Vagonas From RegVag where CodMat = 30 AND Year(Data)= " + DataAno + "
AND Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

A diferença entre elas está em: Peso(????) e CodMat=??

Como fazer para obter na tabela la SOMA da query1 + query2 +
query3++query 30?


Cumprimentos

T.C.

Preguntas similare

Leer las respuestas

#1 Liliana Sorrentino
26/05/2004 - 20:29 | Informe spam
Hola,

"SELECT CodMat, Hour(Hora) as Hora,
(Sum(Vagonas) * " & Peso(30) & ") as Vagonas
FROM RegVag
WHERE Year(Data)= " + DataAno + " AND Month(Data)= " + DataMes + " AND
Day(Data)= " + Dia + "
GROUP BY CodMat, Year(Data), Month(Data), Day(Data), Hour(Hora)"

Saludos... Liliana.

"Ticrito" escribió en el mensaje
news:newscache$w8zbyh$g7i$
Olá

Tengo las seguintes querys que individualmente funcionam:

da-me o peso total das vagonas com o CodMat=1, CodMat=2.

Pretendo com uma só query, somar o resultado da
query1+query2+query3...+query30, e apresentar numa tabela.

Dim Peso(30) as Integer

Peso(1) = 10
Peso(2) = 101
Peso(3) = 123
Peso(4) = 50

Peso(30) = 56

strQuery1 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(1) & ")


as
Vagonas From RegVag where CodMat = 1 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

strQuery2 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(2) & ")


as
Vagonas From RegVag where CodMat = 2 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

strQuery3 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(3) & ")


as
Vagonas From RegVag where CodMat = 3 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"
..

strQuery30 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(30) & ")
as Vagonas From RegVag where CodMat = 30 AND Year(Data)= " + DataAno + "
AND Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

A diferença entre elas está em: Peso(????) e CodMat=??

Como fazer para obter na tabela la SOMA da query1 + query2 +
query3++query 30?


Cumprimentos

T.C.








Respuesta Responder a este mensaje
#2 Maxi
26/05/2004 - 20:30 | Informe spam
Hola, porque no revisas el uso de Subconsultas en tus libros on-line

De todos modos revisa este mini ejemplo a ver si te da una idea.

==
CREATE TABLE #T1 (ID CHAR(10), NRO INT)

CREATE TABLE #T2 (ID CHAR(10), NRO INT)

INSERT INTO #T1 VALUES ('1',100)
INSERT INTO #T1 VALUES ('2',100)
INSERT INTO #T1 VALUES ('3',100)

INSERT INTO #T2 VALUES ('1',100)
INSERT INTO #T2 VALUES ('1',100)
INSERT INTO #T2 VALUES ('1',100)

INSERT INTO #T2 VALUES ('2',50)
INSERT INTO #T2 VALUES ('3',50)
INSERT INTO #T2 VALUES ('3',50)

SELECT #T1.ID,#T1.NRO,T2.VALOR, #T1.NRO + ISNULL(T2.VALOR,0) AS TOTAL
FROM #T1 LEFT JOIN (SELECT ID,SUM(NRO) AS VALOR FROM #T2
GROUP BY ID) T2 ON
#T1.ID=T2.ID

=
Bye


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Ticrito" escribió en el mensaje
news:newscache$w8zbyh$g7i$
Olá

Tengo las seguintes querys que individualmente funcionam:

da-me o peso total das vagonas com o CodMat=1, CodMat=2.

Pretendo com uma só query, somar o resultado da
query1+query2+query3...+query30, e apresentar numa tabela.

Dim Peso(30) as Integer

Peso(1) = 10
Peso(2) = 101
Peso(3) = 123
Peso(4) = 50

Peso(30) = 56

strQuery1 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(1) & ")


as
Vagonas From RegVag where CodMat = 1 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

strQuery2 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(2) & ")


as
Vagonas From RegVag where CodMat = 2 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

strQuery3 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(3) & ")


as
Vagonas From RegVag where CodMat = 3 AND Year(Data)= " + DataAno + " AND
Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"
..

strQuery30 = "SELECT Hour(Hora) as Hora, (Sum(Vagonas) * " & Peso(30) & ")
as Vagonas From RegVag where CodMat = 30 AND Year(Data)= " + DataAno + "
AND Month(Data)= " + DataMes + " AND Day(Data)= " + Dia + " Group by
Year(Data), Month(Data), Day(Data), Hour(Hora)"

A diferença entre elas está em: Peso(????) e CodMat=??

Como fazer para obter na tabela la SOMA da query1 + query2 +
query3++query 30?


Cumprimentos

T.C.













Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.688 / Virus Database: 449 - Release Date: 18/05/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida