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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Marcelo W. Lopez Cremona
13/05/2004 - 14:03 | Informe spam
Tu Error está en el group by.

Marcelo W. Lopez
Tucuman - Argentina
"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


Respuesta Responder a este mensaje
#3 Liliana Sorrentino
13/05/2004 - 15:48 | Informe spam
SELECT t1.npedido,
(t1.campo1) AS SumaCampo1,
(t1.campo2) AS SumaCampo2,
(t1_1.Campo1) AS SumaCampo3,
(t1_1.Campo2) AS SumaCampo4
FROM (SELECT npedido, campo1 = SUM(campo1), campo2 = SUM(campo2)
FROM t1 WHERE turno = 1 GROUP BY npedido) t1
INNER JOIN
(SELECT npedido, campo1 = SUM(campo1), campo2 = SUM(campo2)
FROM t1_1 WHERE turno = 2 GROUP BY npedido) t1_1
ON t1.npedido = t1_1.npedido

Saludos... Liliana.

"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


Respuesta Responder a este mensaje
#4 Javier Loria
13/05/2004 - 15:50 | Informe spam
Hola Edu:
No estoy seguro, si t1 y t1_1 son lo mismo, entonces es probable que
sea:
SELECT t1.NPedido
, SUM(CASE WHEN t1.turno=1 THEN t1.Campo1+t1.Campo2
ELSE 0 END) AS Turno1
, SUM(CASE WHEN t1.turno=2 THEN t1.Campo1+t1.Campo2
ELSE 0 END) AS Turno2
FROM t1
WHERE (t1.turno = 1)
OR (t1_1.Turno = 2)
GROUP BY npedido
== Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

edu escribio:
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
Respuesta Responder a este mensaje
#5 edu
14/05/2004 - 11:23 | Informe spam
muchas gracias a los cuatro

"Javier Loria" escribió en el mensaje
news:
Hola Edu:
No estoy seguro, si t1 y t1_1 son lo mismo, entonces es probable que
sea:
> SELECT t1.NPedido
, SUM(CASE WHEN t1.turno=1 THEN t1.Campo1+t1.Campo2
ELSE 0 END) AS Turno1
, SUM(CASE WHEN t1.turno=2 THEN t1.Campo1+t1.Campo2
ELSE 0 END) AS Turno2
FROM t1
WHERE (t1.turno = 1)
OR (t1_1.Turno = 2)
GROUP BY npedido
==> Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

edu escribio:
> 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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida