Agrupar líneas

11/02/2004 - 14:44 por Pedro Pérez | Informe spam
Amigos:

Tengo una tabla como la siguiente:

CODIGO EXISTENCIA COSTO FECHA
001 2 5.67 01/03/04
001 4 6.00 01/04/04
001 5 6.00 01/05/04
002 10 7.00 01/01/04
002 10 8.00 01/02/04
002 4 6.00 01/04/04
002 5 6.00 01/05/04
Deseo agrupar los código por el que tenga la fecha mayor hasta una fecha
especificada y que me multiplique la EXISTENCIA * COSTO. Hice la siguiente
instrucción:
SELECT codigo, existencia * costo AS valor, MAX(fecha) AS fecha FROM
inventario
WHERE fecha <= '01/03/04' GROUP BY codigo
Me aparece el mensaje de que existencia y costo no tienen funciones
agregadas (no puedo agregarle la función SUM porque no las quiero sumar).

Como lo hago para que me resulte esto:
CODIGO VALOR FECHA
001 11.34 01/03/04
002 80 01/02/04

Gracias


Pedro Pérez

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
11/02/2004 - 14:37 | Informe spam
SELECT codigo, existencia * costo AS valor, MAX(fecha) AS fecha FROM
inventario
WHERE fecha <= '01/03/04' GROUP BY codigo,existencia * costo

PROBA ASI

Salu2

Maximiliano Damian Accotto


"Pedro Pérez" escribió en el mensaje
news:
Amigos:

Tengo una tabla como la siguiente:

CODIGO EXISTENCIA COSTO FECHA
001 2 5.67 01/03/04
001 4 6.00 01/04/04
001 5 6.00 01/05/04
002 10 7.00 01/01/04
002 10 8.00 01/02/04
002 4 6.00 01/04/04
002 5 6.00 01/05/04
Deseo agrupar los código por el que tenga la fecha mayor hasta una fecha
especificada y que me multiplique la EXISTENCIA * COSTO. Hice la siguiente
instrucción:
SELECT codigo, existencia * costo AS valor, MAX(fecha) AS fecha FROM
inventario
WHERE fecha <= '01/03/04' GROUP BY codigo
Me aparece el mensaje de que existencia y costo no tienen funciones
agregadas (no puedo agregarle la función SUM porque no las quiero sumar).

Como lo hago para que me resulte esto:
CODIGO VALOR FECHA
001 11.34 01/03/04
002 80 01/02/04

Gracias


Pedro Pérez


Respuesta Responder a este mensaje
#2 Pedro Pérez
11/02/2004 - 15:57 | Informe spam
Se repiten porque me lo agrupa ademas por existencia * costo.

Habrá otra forma?

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> wrote in message
news:
SELECT codigo, existencia * costo AS valor, MAX(fecha) AS fecha FROM
inventario
WHERE fecha <= '01/03/04' GROUP BY codigo,existencia * costo

PROBA ASI

Salu2

Maximiliano Damian Accotto


"Pedro Pérez" escribió en el mensaje
news:
> Amigos:
>
> Tengo una tabla como la siguiente:
>
> CODIGO EXISTENCIA COSTO FECHA
> 001 2 5.67 01/03/04
> 001 4 6.00 01/04/04
> 001 5 6.00 01/05/04
> 002 10 7.00 01/01/04
> 002 10 8.00 01/02/04
> 002 4 6.00 01/04/04
> 002 5 6.00 01/05/04
> Deseo agrupar los código por el que tenga la fecha mayor hasta una fecha
> especificada y que me multiplique la EXISTENCIA * COSTO. Hice la


siguiente
> instrucción:
> SELECT codigo, existencia * costo AS valor, MAX(fecha) AS fecha FROM
> inventario
> WHERE fecha <= '01/03/04' GROUP BY codigo
> Me aparece el mensaje de que existencia y costo no tienen funciones
> agregadas (no puedo agregarle la función SUM porque no las quiero


sumar).
>
> Como lo hago para que me resulte esto:
> CODIGO VALOR FECHA
> 001 11.34 01/03/04
> 002 80 01/02/04
>
> Gracias
>
>
> Pedro Pérez
>
>


Respuesta Responder a este mensaje
#3 ulises
11/02/2004 - 15:59 | Informe spam
Tendrías que hacer un JOIN con la misma tabla, hace poco
Javier respondió una pregunta parecida, en todo caso sería
algo como (sin probar) :

SELECT codigo,
existencia * costo AS valor,
fecha
FROM inventario
JOIN ( select max(fecha) as fecha from inventario
where fecha <= '20040301' ) as p1
ON ( inventario.codigo = p1.codigo
and inventario.fecha = p1.fecha )
WHERE fecha <= '20040301'

Saludos,
Ulises

Se repiten porque me lo agrupa ademas por existencia *


costo.

Habrá otra forma?

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]


ar> wrote in message
news:
SELECT codigo, existencia * costo AS valor, MAX(fecha)




AS fecha FROM
inventario
WHERE fecha <= '01/03/04' GROUP BY codigo,existencia *




costo

PROBA ASI

Salu2

Maximiliano Damian Accotto


"Pedro Pérez" escribió en el




mensaje
news:
> Amigos:
>
> Tengo una tabla como la siguiente:
>
> CODIGO EXISTENCIA COSTO FECHA
> 001 2




5.67 01/03/04
> 001 4




6.00 01/04/04
> 001 5




6.00 01/05/04
> 002 10




7.00 01/01/04
> 002 10




8.00 01/02/04
> 002 4




6.00 01/04/04
> 002 5




6.00 01/05/04
> Deseo agrupar los código por el que tenga la fecha




mayor hasta una fecha
> especificada y que me multiplique la EXISTENCIA *




COSTO. Hice la
siguiente
> instrucción:
> SELECT codigo, existencia * costo AS valor, MAX




(fecha) AS fecha FROM
> inventario
> WHERE fecha <= '01/03/04' GROUP BY codigo
> Me aparece el mensaje de que existencia y costo no




tienen funciones
> agregadas (no puedo agregarle la función SUM porque




no las quiero
sumar).
>
> Como lo hago para que me resulte esto:
> CODIGO VALOR FECHA
> 001 11.34 01/03/04
> 002 80 01/02/04
>
> Gracias
>
>
> Pedro Pérez
>
>






.

Respuesta Responder a este mensaje
#4 Maximiliano D. A.
11/02/2004 - 16:24 | Informe spam
tienes razon Ulises!!! :S en el apuro se me paso :(, disculpa Pedro

Maximiliano Damian Accotto

"Pedro Pérez" escribió en el mensaje
news:%
Exacto!!!!! Ulises

Gracias Ulises y Maximiliano

"ulises" wrote in message
news:eb8501c3f0af$a8fc83d0$
Tendrías que hacer un JOIN con la misma tabla, hace poco
Javier respondió una pregunta parecida, en todo caso sería
algo como (sin probar) :

SELECT codigo,
existencia * costo AS valor,
fecha
FROM inventario
JOIN ( select max(fecha) as fecha from inventario
where fecha <= '20040301' ) as p1
ON ( inventario.codigo = p1.codigo
and inventario.fecha = p1.fecha )
WHERE fecha <= '20040301'

Saludos,
Ulises

>Se repiten porque me lo agrupa ademas por existencia *
costo.
>
>Habrá otra forma?
>
>"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]
ar> wrote in message
>news:
>> SELECT codigo, existencia * costo AS valor, MAX(fecha)
AS fecha FROM
>> inventario
>> WHERE fecha <= '01/03/04' GROUP BY codigo,existencia *
costo
>>
>> PROBA ASI
>>
>> Salu2
>>
>> Maximiliano Damian Accotto
>>
>>
>> "Pedro Pérez" escribió en el
mensaje
>> news:
>> > Amigos:
>> >
>> > Tengo una tabla como la siguiente:
>> >
>> > CODIGO EXISTENCIA COSTO FECHA
>> > 001 2
5.67 01/03/04
>> > 001 4
6.00 01/04/04
>> > 001 5
6.00 01/05/04
>> > 002 10
7.00 01/01/04
>> > 002 10
8.00 01/02/04
>> > 002 4
6.00 01/04/04
>> > 002 5
6.00 01/05/04
>> > Deseo agrupar los código por el que tenga la fecha
mayor hasta una fecha
>> > especificada y que me multiplique la EXISTENCIA *
COSTO. Hice la
>siguiente
>> > instrucción:
>> > SELECT codigo, existencia * costo AS valor, MAX
(fecha) AS fecha FROM
>> > inventario
>> > WHERE fecha <= '01/03/04' GROUP BY codigo
>> > Me aparece el mensaje de que existencia y costo no
tienen funciones
>> > agregadas (no puedo agregarle la función SUM porque
no las quiero
>sumar).
>> >
>> > Como lo hago para que me resulte esto:
>> > CODIGO VALOR FECHA
>> > 001 11.34 01/03/04
>> > 002 80 01/02/04
>> >
>> > Gracias
>> >
>> >
>> > Pedro Pérez
>> >
>> >
>>
>>
>
>
>.
>


Respuesta Responder a este mensaje
#5 Pedro Pérez
11/02/2004 - 16:36 | Informe spam
Exacto!!!!! Ulises

Gracias Ulises y Maximiliano

"ulises" wrote in message
news:eb8501c3f0af$a8fc83d0$
Tendrías que hacer un JOIN con la misma tabla, hace poco
Javier respondió una pregunta parecida, en todo caso sería
algo como (sin probar) :

SELECT codigo,
existencia * costo AS valor,
fecha
FROM inventario
JOIN ( select max(fecha) as fecha from inventario
where fecha <= '20040301' ) as p1
ON ( inventario.codigo = p1.codigo
and inventario.fecha = p1.fecha )
WHERE fecha <= '20040301'

Saludos,
Ulises

Se repiten porque me lo agrupa ademas por existencia *


costo.

Habrá otra forma?

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]


ar> wrote in message
news:
SELECT codigo, existencia * costo AS valor, MAX(fecha)




AS fecha FROM
inventario
WHERE fecha <= '01/03/04' GROUP BY codigo,existencia *




costo

PROBA ASI

Salu2

Maximiliano Damian Accotto


"Pedro Pérez" escribió en el




mensaje
news:
> Amigos:
>
> Tengo una tabla como la siguiente:
>
> CODIGO EXISTENCIA COSTO FECHA
> 001 2




5.67 01/03/04
> 001 4




6.00 01/04/04
> 001 5




6.00 01/05/04
> 002 10




7.00 01/01/04
> 002 10




8.00 01/02/04
> 002 4




6.00 01/04/04
> 002 5




6.00 01/05/04
> Deseo agrupar los código por el que tenga la fecha




mayor hasta una fecha
> especificada y que me multiplique la EXISTENCIA *




COSTO. Hice la
siguiente
> instrucción:
> SELECT codigo, existencia * costo AS valor, MAX




(fecha) AS fecha FROM
> inventario
> WHERE fecha <= '01/03/04' GROUP BY codigo
> Me aparece el mensaje de que existencia y costo no




tienen funciones
> agregadas (no puedo agregarle la función SUM porque




no las quiero
sumar).
>
> Como lo hago para que me resulte esto:
> CODIGO VALOR FECHA
> 001 11.34 01/03/04
> 002 80 01/02/04
>
> Gracias
>
>
> Pedro Pérez
>
>






.

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