mostrar tres registros como uno solo

23/10/2009 - 19:10 por RP | Informe spam
Hola, yo nuevamente, tengo este Query:

SELECT
b.Item As Item, b.Descripcion As Descripcion, u.abrev As Abrev, '22/10/2009',
avg(CASE WHEN month(oc.FechReg)=8 THEN dc.CostoUnit ELSE 0 END) As Mes1,
avg(CASE WHEN month(oc.FechReg)=9 THEN dc.CostoUnit ELSE 0 END) As Mes2,
avg(CASE WHEN month(oc.FechReg) THEN dc.CostoUnit ELSE 0 END) As Mes3
From
Bien b, DetalleOC dc, OrdenC oc, UnidadMedida u
Where
dc.CodBien = B.Codigo And B.Unidad = U.Codigo
And dc.CodOC=oc.Codigo And oc.Estado<>0
And year(oc.FechReg) 09
And month(oc.FechReg)>7
Group By
B.Item, B.Descripcion, U.Abrev, Month(oc.FechReg)
Order By b.Item

me manda los siguientes Resultados:

Item Descripcion Unidad Fecha Mes1 Mes2 Mes3
-
4000 CARTUCHO UND 22/10/09 50.45 0 0
4003 PETROLEO D2 GLN 22/10/09 7.61 0 0
4003 PETROLEO D2 GLN 22/10/09 0 7.61 0
4003 PETROLEO D2 GLN 22/10/09 0 0 7.78
4015 CAMARA DE LLAN UND 22/10/09 55 0 0
4015 CAMARA DE LLAN UND 22/10/09 0 0 17
4027 DESINFECTANTE GLN 22/10/09 0 9 0

Lo que quiero es que me junte los Item que se duplican en uno sólo ya probe
usando el Distinct (b.ITem), pero nada, en castellano quiero que me muestre
de la siguiente manera:

Item Descripcion Unidad Fecha Mes1 Mes2 Mes3
-
4000 CARTUCHO UND 22/10/09 50.45 0 0
4003 PETROLEO D2 GLN 22/10/09 7.61 7.61 7.78
4015 CAMARA DE LLAN UND 22/10/09 55 0 17
4027 DESINFECTANTE GLN 22/10/09 0 9 0

Gracias de Antemano

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
24/10/2009 - 02:05 | Informe spam
RP,

Usa tu query como una tabla derivada o usa una CTE.

select
Item, Descripcion, Abrev,
max(Mes1) as m_1,
max(Mes2) as m_2,
max(Mes3) as m_3
from
(
AQUI TU QUERY SIN "ORDER BY"
) as T
group by Item, Descripcion, Abrev
order by Item;


AMB



"RP" wrote:

Hola, yo nuevamente, tengo este Query:

SELECT
b.Item As Item, b.Descripcion As Descripcion, u.abrev As Abrev, '22/10/2009',
avg(CASE WHEN month(oc.FechReg)=8 THEN dc.CostoUnit ELSE 0 END) As Mes1,
avg(CASE WHEN month(oc.FechReg)=9 THEN dc.CostoUnit ELSE 0 END) As Mes2,
avg(CASE WHEN month(oc.FechReg) THEN dc.CostoUnit ELSE 0 END) As Mes3
From
Bien b, DetalleOC dc, OrdenC oc, UnidadMedida u
Where
dc.CodBien = B.Codigo And B.Unidad = U.Codigo
And dc.CodOC=oc.Codigo And oc.Estado<>0
And year(oc.FechReg) 09
And month(oc.FechReg)>7
Group By
B.Item, B.Descripcion, U.Abrev, Month(oc.FechReg)
Order By b.Item

me manda los siguientes Resultados:

Item Descripcion Unidad Fecha Mes1 Mes2 Mes3
-
4000 CARTUCHO UND 22/10/09 50.45 0 0
4003 PETROLEO D2 GLN 22/10/09 7.61 0 0
4003 PETROLEO D2 GLN 22/10/09 0 7.61 0
4003 PETROLEO D2 GLN 22/10/09 0 0 7.78
4015 CAMARA DE LLAN UND 22/10/09 55 0 0
4015 CAMARA DE LLAN UND 22/10/09 0 0 17
4027 DESINFECTANTE GLN 22/10/09 0 9 0

Lo que quiero es que me junte los Item que se duplican en uno sólo ya probe
usando el Distinct (b.ITem), pero nada, en castellano quiero que me muestre
de la siguiente manera:

Item Descripcion Unidad Fecha Mes1 Mes2 Mes3
-
4000 CARTUCHO UND 22/10/09 50.45 0 0
4003 PETROLEO D2 GLN 22/10/09 7.61 7.61 7.78
4015 CAMARA DE LLAN UND 22/10/09 55 0 17
4027 DESINFECTANTE GLN 22/10/09 0 9 0

Gracias de Antemano
Respuesta Responder a este mensaje
#2 Carlos M. Calvelo
24/10/2009 - 12:47 | Informe spam
Hola RP,

On 23 okt, 19:10, RP wrote:
Hola, yo nuevamente, tengo este Query:

SELECT                            
        b.Item As Item, b.Descripcion As Descripcion, u.abrev As Abrev, '22/10/2009',
        avg(CASE WHEN month(oc.FechReg)=8 THEN dc.CostoUnit ELSE 0 END) As Mes1,
        avg(CASE WHEN month(oc.FechReg)=9 THEN dc.CostoUnit ELSE 0 END) As Mes2,
        avg(CASE WHEN month(oc.FechReg) THEN dc.CostoUnit ELSE 0 END) As Mes3
From
        Bien b, DetalleOC dc, OrdenC oc, UnidadMedida u                            
Where
        dc.CodBien = B.Codigo And B.Unidad = U.Codigo                            
        And dc.CodOC=oc.Codigo And oc.Estado<>0
        And year(oc.FechReg) 09
        And month(oc.FechReg)>7
Group By
        B.Item, B.Descripcion, U.Abrev, Month(oc.FechReg)
Order By b.Item

me manda los siguientes Resultados:

Item       Descripcion           Unidad  Fecha       Mes1    Mes2    Mes3
     --   --  --    -  -  
-
4000    CARTUCHO        UND         22/10/09    50.45   0       0
4003    PETROLEO D2     GLN         22/10/09    7.61    0       0
4003    PETROLEO D2     GLN         22/10/09       0        7.61        0
4003    PETROLEO D2     GLN         22/10/09       0            0       7.78
4015    CAMARA DE LLAN  UND         22/10/09      55            0       0
4015    CAMARA DE LLAN  UND         22/10/09       0            0       17
4027    DESINFECTANTE   GLN         22/10/09       0            9       0

Lo que quiero es que me junte los Item que se duplican en uno sólo ya probe
usando el Distinct (b.ITem), pero nada, en castellano quiero que me muestre
de la siguiente manera:

Item       Descripcion           Unidad  Fecha       Mes1    Mes2    Mes3
     --   --  --    -  -  
-
4000    CARTUCHO        UND         22/10/09    50.45    0              0
4003    PETROLEO D2     GLN         22/10/09    7.61      7.61      7.78
4015    CAMARA DE LLAN  UND         22/10/09      55            0             17
4027    DESINFECTANTE   GLN         22/10/09       0            9               0




Pues como te dice Alejandro. Pero creo que no solo tendrás
que sacar el 'ORDER BY' a la consulta exterior, sino también
la columna fecha con la constante '22/10/2009'.

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