Tener una Consulta de Referencias Cruzadas

21/10/2009 - 20:06 por RP | Informe spam
Hola que tal, postee hace unas lineas, pero parece que la pregunta no fue muy
entendible, ahora bien logre hacer este query:

Select
Month(c.FechReg) As mes,
b.Item, b.Descripcion, u.Abrev, avg(dc.CostoUnit)
From
Bien b, DetalleOC dc, OrdenC c, UnidadMedida u
Where
dc.CodBien=b.Codigo And b.Unidad=u.Codigo
And dc.CodOC=c.Codigo
And year(c.FechReg) 09 And b.ItemA74
And month(c.FechReg)>6
Group By
Month(c.FechReg),b.Item, b.Descripcion, u.Abrev

Y me sale lo siguiente:
7 4174 GASOLINA 90 OCT. GLN 7.4
8 4174 GASOLINA 90 OCT. GLN 7.8
9 4174 GASOLINA 90 OCT. GLN 7.5
10 4174 GASOLINA 90 OCT. GLN 7.9

Pero lo que yo deseo es que me visualize de la siguiente manera:
Item Descripcion Unidad Mes7 Mes
8 MEs9 Mes10
4174 GASOLINA 90 OCT. GLN 7.4 7.8 7.5 7.9

Eso vi que se puede hacer en Acces con consultas de Referencias Cruzadas,
como hago eso en SQL Server 2005??, agradezco de antemano la ayuda brindada

Preguntas similare

Leer las respuestas

#1 RP
21/10/2009 - 22:42 | Informe spam
Bueno despues de tanto buscar y probar, llegue a lo siguiente, el cual me
permite ver tal y como quiero mi consulta, bueno con Access salia normal
porque tiene su diseñador de consultas de referencias cruzadas, pero también
me salio por acá, hice lo siguiente:

WITH Ordenar(Item, Descripcion, Abrev, mes1, Valor) AS
(
SELECT
b.Item, b.Descripcion, u.abrev, MONTH(c.FechReg) AS mes1, avg(dc.CostoUnit)
AS Valor
FROM
dbo.Bien AS b INNER JOIN dbo.DetalleOC AS dc ON b.Codigo = dc.CodBien
INNER JOIN dbo.UnidadMedida AS u ON b.Unidad = u.codigo
INNER JOIN dbo.OrdenC AS c ON dc.CodOC = c.Codigo

WHERE
(YEAR(c.FechReg) = 2009) AND (b.Item = 4174)
GROUP BY
MONTH(c.FechReg), b.Item, b.Descripcion, u.abrev
)

SELECT *
FROM Ordenar
PIVOT(sum(Valor)
FOR mes1 IN ([6], [7], [8])) AS P

y con eso me mostro los datoscomo lo queria, Gracias



"RP" wrote:

Hola que tal, postee hace unas lineas, pero parece que la pregunta no fue muy
entendible, ahora bien logre hacer este query:

Select
Month(c.FechReg) As mes,
b.Item, b.Descripcion, u.Abrev, avg(dc.CostoUnit)
From
Bien b, DetalleOC dc, OrdenC c, UnidadMedida u
Where
dc.CodBien=b.Codigo And b.Unidad=u.Codigo
And dc.CodOC=c.Codigo
And year(c.FechReg) 09 And b.ItemA74
And month(c.FechReg)>6
Group By
Month(c.FechReg),b.Item, b.Descripcion, u.Abrev

Y me sale lo siguiente:
7 4174 GASOLINA 90 OCT. GLN 7.4
8 4174 GASOLINA 90 OCT. GLN 7.8
9 4174 GASOLINA 90 OCT. GLN 7.5
10 4174 GASOLINA 90 OCT. GLN 7.9

Pero lo que yo deseo es que me visualize de la siguiente manera:
Item Descripcion Unidad Mes7 Mes
8 MEs9 Mes10
4174 GASOLINA 90 OCT. GLN 7.4 7.8 7.5 7.9

Eso vi que se puede hacer en Acces con consultas de Referencias Cruzadas,
como hago eso en SQL Server 2005??, agradezco de antemano la ayuda brindada

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