Query algo complicado

26/09/2008 - 18:57 por Alonso Vilela | Informe spam
Amigos :
Tengo una tabla donde almaceno un inventario
id,proc_id,amount,status_id
1 1 10 2
2 1 1 3
3 2 50 2
4 2 5 3
5 3 20 2
6 1 3 3
7 2 20 2

etc

Ahor a necesito query que muestre la sumatoria de los productos
agrupados por porc_id y a la vez por status,id pero el resultado de cada
producto se muestra en una sola fila

algo como

proc_id sum(proc_id) when status_id = 2 sum(proc_id) when status_id =
3
1 10
4
2 70
5
3 20
0

gracias

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
26/09/2008 - 19:46 | Informe spam
Hola Alonso,

On 26 sep, 18:57, "Alonso Vilela" wrote:
Amigos :
Tengo una tabla donde almaceno un inventario
id,proc_id,amount,status_id
1    1        10    2
2    1        1       3
3    2        50     2
4    2        5        3
5    3        20      2
6    1        3        3
7    2        20      2

etc

Ahor a necesito query que muestre la sumatoria de los productos
agrupados por porc_id y a la vez por status,id pero el resultado de cada
producto se muestra en una sola fila

algo como

proc_id    sum(proc_id) when status_id = 2     sum(proc_id) when status_id > 3
    1                                10
4
    2                                70
5
    3                                20
0

gracias



Prueba algo así:

select proc_id,
sum(case status_id when 2 then amount else 0 end) as amt_sts2,
sum(case status_id when 3 then amount else 0 end) as amt_sts3
from TuTabla
group by proc_id

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Alonso Vilela
29/09/2008 - 22:58 | Informe spam
gracias por tu respuesta, pero la mentablemente cuando uso esta sintaxis
debo inlcuir el statu_id en la clause group y de esa manera el resulatdo se
altera..


"Carlos M. Calvelo" wrote in message
news:
Hola Alonso,

On 26 sep, 18:57, "Alonso Vilela" wrote:
Amigos :
Tengo una tabla donde almaceno un inventario
id,proc_id,amount,status_id
1 1 10 2
2 1 1 3
3 2 50 2
4 2 5 3
5 3 20 2
6 1 3 3
7 2 20 2

etc

Ahor a necesito query que muestre la sumatoria de los productos
agrupados por porc_id y a la vez por status,id pero el resultado de cada
producto se muestra en una sola fila

algo como

proc_id sum(proc_id) when status_id = 2 sum(proc_id) when status_id > 3
1 10
4
2 70
5
3 20
0

gracias



Prueba algo así:

select proc_id,
sum(case status_id when 2 then amount else 0 end) as amt_sts2,
sum(case status_id when 3 then amount else 0 end) as amt_sts3
from TuTabla
group by proc_id

Saludos,
Carlos
Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
30/09/2008 - 15:44 | Informe spam
Hola Alonso,

On 29 sep, 22:58, "Alonso Vilela" wrote:
gracias por tu respuesta, pero la mentablemente cuando uso esta sintaxis
debo inlcuir el statu_id en la clause group y de esa manera el resulatdo se
altera..




Y por qué debes incluir el status_id en en la cláusula group by?
Si haces eso... claro que ese altera.

Quizás quieres añadir tantas columnas con sumas como status_id
distintos hay? Entonces añade esas columnas al estilo de las dos
ya dadas.

Si no se trata de eso, no entiendo que resultado deseas obtener.

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