Problema con GROUP BY

26/09/2008 - 15:05 por German Lugo | Informe spam
Apreciados Amigos:

Cómo han estado ?

Estoy desarrollando unos programas que me permitan conocer la existencia y
costo últimos de un producto o de todos los productos dentro de un período.
Ayer solicité colaboración acerca de una consulta para existencias, hoy la
solicito para costos.

Soy programador en Fox hace muchos años y un completo novato en SQl.

En Fox la siguiente consulta es válida cuando trato de determinar el costo :

SELECT mvtoinv.codigo, MAX(mvtoinv.fecha) ,mvtoinv.costo
FROM mvtoinv
WHERE mvtoinv.tipocosto =1
AND mvtoinv.codigo LIKE @codigo
AND mvtoinv.fecha <= @fecha
GROUP BY mvtoinv.codigo

La consulta Fox me retorna el costo de un producto o de todos los productos
después de la última compra en el período determinado. En SQL no lo he
logrado por la restricción que conocemos respecto al costo en este caso.

Amigos, alguna sugerencia ?



Best regards,

GERMAN LUGO
PROVENET LTDA. CI
ADDRESS CALLE 13 No. 58-42
BOGOTA D.C. - COLOMBIA
PHONE : 57 1 4145832
PHONEFAX : 57 1 4467880
YAHOOMAIL :german_provenetci@yahoo.com
WEBSITE :www.provenetci.com

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
26/09/2008 - 16:57 | Informe spam
Cual version de sql server usas?

select top 1 with ties
codigo, fecha, costo
from
mvtoinv
WHERE
tipocosto = 1
AND codigo LIKE @codigo
AND fecha <= @fecha
order by
dense_rank() over(partition by codigo order by fecha DESC)
GO

select
a.codigo, a.fecha, a.costo
from
mvtoinv as a
inner join
(
select codigo, max(fecha) as max_fecha
from mvtoinv
WHERE
tipocosto = 1
AND codigo LIKE @codigo
AND fecha <= @fecha
) as b
on a.codigo = b.codigo and a.fecha = b.max_fecha
WHERE
a.tipocosto = 1
AND a.codigo LIKE @codigo
AND a.fecha <= @fecha
GO

AMB

"German Lugo" wrote:

Apreciados Amigos:

Cómo han estado ?

Estoy desarrollando unos programas que me permitan conocer la existencia y
costo últimos de un producto o de todos los productos dentro de un período.
Ayer solicité colaboración acerca de una consulta para existencias, hoy la
solicito para costos.

Soy programador en Fox hace muchos años y un completo novato en SQl.

En Fox la siguiente consulta es válida cuando trato de determinar el costo :

SELECT mvtoinv.codigo, MAX(mvtoinv.fecha) ,mvtoinv.costo
FROM mvtoinv
WHERE mvtoinv.tipocosto =1
AND mvtoinv.codigo LIKE @codigo
AND mvtoinv.fecha <= @fecha
GROUP BY mvtoinv.codigo

La consulta Fox me retorna el costo de un producto o de todos los productos
después de la última compra en el período determinado. En SQL no lo he
logrado por la restricción que conocemos respecto al costo en este caso.

Amigos, alguna sugerencia ?



Best regards,

GERMAN LUGO
PROVENET LTDA. CI
ADDRESS CALLE 13 No. 58-42
BOGOTA D.C. - COLOMBIA
PHONE : 57 1 4145832
PHONEFAX : 57 1 4467880
YAHOOMAIL :
WEBSITE :www.provenetci.com




Respuesta Responder a este mensaje
#2 Alejandro Mesa
26/09/2008 - 17:15 | Informe spam
Correccio'n:

select
a.codigo, a.fecha, a.costo
from
mvtoinv as a
inner join
(
select codigo, max(fecha) as max_fecha
from mvtoinv
WHERE
tipocosto = 1
AND codigo LIKE @codigo
AND fecha <= @fecha
group by
codigo
) as b
on a.codigo = b.codigo and a.fecha = b.max_fecha
WHERE
a.tipocosto = 1
AND a.codigo LIKE @codigo
AND a.fecha <= @fecha
GO

AMB

"Alejandro Mesa" wrote:

Cual version de sql server usas?

select top 1 with ties
codigo, fecha, costo
from
mvtoinv
WHERE
tipocosto = 1
AND codigo LIKE @codigo
AND fecha <= @fecha
order by
dense_rank() over(partition by codigo order by fecha DESC)
GO

select
a.codigo, a.fecha, a.costo
from
mvtoinv as a
inner join
(
select codigo, max(fecha) as max_fecha
from mvtoinv
WHERE
tipocosto = 1
AND codigo LIKE @codigo
AND fecha <= @fecha
) as b
on a.codigo = b.codigo and a.fecha = b.max_fecha
WHERE
a.tipocosto = 1
AND a.codigo LIKE @codigo
AND a.fecha <= @fecha
GO

AMB

"German Lugo" wrote:

> Apreciados Amigos:
>
> Cómo han estado ?
>
> Estoy desarrollando unos programas que me permitan conocer la existencia y
> costo últimos de un producto o de todos los productos dentro de un período.
> Ayer solicité colaboración acerca de una consulta para existencias, hoy la
> solicito para costos.
>
> Soy programador en Fox hace muchos años y un completo novato en SQl.
>
> En Fox la siguiente consulta es válida cuando trato de determinar el costo :
>
> SELECT mvtoinv.codigo, MAX(mvtoinv.fecha) ,mvtoinv.costo
> FROM mvtoinv
> WHERE mvtoinv.tipocosto =1
> AND mvtoinv.codigo LIKE @codigo
> AND mvtoinv.fecha <= @fecha
> GROUP BY mvtoinv.codigo
>
> La consulta Fox me retorna el costo de un producto o de todos los productos
> después de la última compra en el período determinado. En SQL no lo he
> logrado por la restricción que conocemos respecto al costo en este caso.
>
> Amigos, alguna sugerencia ?
>
>
>
> Best regards,
>
> GERMAN LUGO
> PROVENET LTDA. CI
> ADDRESS CALLE 13 No. 58-42
> BOGOTA D.C. - COLOMBIA
> PHONE : 57 1 4145832
> PHONEFAX : 57 1 4467880
> YAHOOMAIL :
> WEBSITE :www.provenetci.com
>
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida