donde esta el error

13/05/2004 - 10:11 por edu | Informe spam
tengo que hacer una consulta y no me sale bien los resultados, la consulta
es la siguiente

SELECT npedido, SUM(t1.campo1) AS SumaCampo1,
SUM(t1.campo2) AS SumaCampo2, SUM(t1_1.Campo1) AS
SumaCampo3
SUM(t1_1.Campo2) AS SumaCampo4
FROM t1 INNER JOIN
t1_1 ON t1.npedido = t1_1.npedido
WHERE (t1.turno = 1) OR
(t1_1.Turno = 2)
GROUP BY npedido

tengo dos vistas y quiero que aparezca la suma del campo1 y campo2 para el
turno 1 y la suma del campo1 y campo2 para el turno 2 todo esto agrupados
por el numero del pedido, el problema que el resultado que me devuelve la
consulta es que me suma todos tanto los del turno 1 como los del turno 2.
lo que quiero es que si por ejemplo para el turno 1 hay una suma de 25 y
para el turno 2 hay una suma de 0 para ese pedido, me aparezca eso y no 25
tanto en la suma del turno1 como la suma del turno2
que es lo que estoy haciendo mal?
gracias
 

Leer las respuestas

#1 Maxi
13/05/2004 - 14:01 | Informe spam
Hola, si lo queres hacer en un solo registro digamos deberiamos pasar a este
modelo

=
SELECT npedido, SUM(t1.campo1) AS SumaCampo1,
SUM(t1.campo2) AS SumaCampo2, isnull(t1_1x.Campo1,0)
AS
SumaCampo3
isnull(t1_1x.Campo2,0) AS SumaCampo4
FROM t1 LEFT JOIN
(select npedido,turno,sum(campo1) as
campo1,sum(campo2) as campo2
FROM t1_1 group by npedido,turno) T1_1x
ON t1.npedido = t1_1x.npedido and
t1.turno = t1_1x.turno

WHERE (t1.turno = 1)
GROUP BY t1.npedido


Fijate si es esto lo que buscas

Un saludo


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



"edu" escribió en el mensaje
news:OQ$
tengo que hacer una consulta y no me sale bien los resultados, la consulta
es la siguiente

SELECT npedido, SUM(t1.campo1) AS SumaCampo1,
SUM(t1.campo2) AS SumaCampo2, SUM(t1_1.Campo1) AS
SumaCampo3
SUM(t1_1.Campo2) AS SumaCampo4
FROM t1 INNER JOIN
t1_1 ON t1.npedido = t1_1.npedido
WHERE (t1.turno = 1) OR
(t1_1.Turno = 2)
GROUP BY npedido

tengo dos vistas y quiero que aparezca la suma del campo1 y campo2 para el
turno 1 y la suma del campo1 y campo2 para el turno 2 todo esto agrupados
por el numero del pedido, el problema que el resultado que me devuelve la
consulta es que me suma todos tanto los del turno 1 como los del turno 2.
lo que quiero es que si por ejemplo para el turno 1 hay una suma de 25 y
para el turno 2 hay una suma de 0 para ese pedido, me aparezca eso y no 25
tanto en la suma del turno1 como la suma del turno2
que es lo que estoy haciendo mal?
gracias







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.676 / Virus Database: 438 - Release Date: 03/05/2004

Preguntas similares