Facturas Y cobros

17/04/2004 - 17:22 por Julio | Informe spam
Hola grupo

Tengo problema para poder crear un codigo para cobrar un recargo cuando una
persona se pasa de la fecha de pago.

Tengo dos tablas Como son "Facturas y Cobros"

En la tabla facturas tengo lo siguiente
FacturasID
ClienteID
FechaLimite
Total
Entres otros pero estos son los principales

En la tabla Cobros tengo
CobroID
ClienteID
FacturaID
FechaCobrado
Cantidad

Ahora bien el recargo consiste en lo siguiente:

Si un cliente tiene una facturas en el mes 01/01/04 de 1500 y su fechalimite
para pagar es 01/15/04 y el hace un pago en fecha 01/12/04 de 1000 y luego
hace otro pago en fecha 01/18/04 de 500 entonces se le cobrara recargo por
500 ya que pago 1000 antes de la fechaLimite.

Otro Ejemplo
Si un cliente tiene una facturas en el mes 02/01/04 de 2000 y su fechalimite
para pagar es 02/15/04 y el hace un pago en fecha 01/12/04 de 2000 entonces
no tiene recargo ya que pago antes de la fechaLimite, pero si el paga los
2000 en fecha 02/17/04 entonces se le cobrara recargo por los 2000 ya que
pago despues de la fecha Limite.

Entonces tengo problema para crear este codigo ya que un cliente puede
hacerle dos pago a una misma facturas, ya sea un pago antes de la
fechaLimite y otro despues de la fecha Limite o Ambos antes de la
fechaLimite o Despues.
Pueden existir todas estas posibilidades.

Lo que necesito es acumular el recargo por ClienteID y por facturaID tomando
en cuenta la fechaLimite

Espero que hayan entendido y le agradecere la ayuda.

Preguntas similare

Leer las respuestas

#6 Julio
19/04/2004 - 13:48 | Informe spam
Hola José, el código me trae todos los registros como deben de ser, excepto
la facturaID que me la trae en Null y la necesito para poder hacer la
transacción, esto es solamente para los clientes que no tienen pagos
registrado en cobros.



"Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar> wrote in
message news:uzJ$
Si, cuando hice el reemplazo el editor me saco el ,0
Reemplaza los coalesce(c.cantidad) por coalesce(c.cantidad,0.0)

Sin embargo me di cuenta que en algunas ocasiones puedes tener registros


con
Fechacobrado en nulo y no lo analice. Deberías agregar estas condiciones
también.


Jose Mariano Alvarez
jose (.) alvarez * *Arroba* * mug (.) org (.) ar
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


.
"Julio" wrote in message
news:
> Gracias Jose por contestar, alparecer tengo un problema de sintaxis en


el
> codigo. Cuando lo pruebo me da lo siguiente
>
> Server: Msg 170, Level 15, State 1, Line 6
> Line 6: Incorrect syntax near ')'.
>
>
>
> "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>


wrote
in
> message news:%
> > Ajusta los signos de acuerdo a como almacenas los datos
> > Pon una bandera para indicar si no tiene pagos en la tabla por


ejemplo,
> sino
> > puedes verificar los importes.
> >
> > Se deslizaron un par de errores en el código que te pasara antes
> >
> > Saludos
> >
> >
> > select
> > c.FacturaID ,
> > SUM(
> > case
> > when fechalimite >= Fechacobrado
> > then coalesce(c.cantidad)
> > else 0
> > end
> > ) ImporteCobradoEnFecha,
> > SUM(
> > case
> > when fechalimite < Fechacobrado
> > then coalesce(c.cantidad)
> > else 0
> > end
> > ) ImporteCobradoRetrasado,
> > SUM(
> > case
> > when getdate() <= fechalimite
> > then -coalesce(c.cantidad)
> > else 0
> > end
> > ) + MIN(f.cantidad) ImportesImpagoNoVencido,
> > SUM(
> > case
> > when getdate() > fechalimite
> > then -coalesce(c.cantidad)
> > else 0
> > end
> > ) + MIN(f.cantidad) ImportesImpagosVencido,
> > SUM(
> > case
> > when fechalimite >= Fechacobrado
> > then -coalesce(c.cantidad)
> > else 0
> > end
> > ) + MIN(f.cantidad) ImportesImpagoAlVencimeinto,
> > SUM(-coalesce(c.cantidad) ) ImporteCobrado -- Igual a la suma de los
dos
> > primeros
> > SUM(-coalesce(c.cantidad) ) + MIN(f.cantidad) ImporteImpago
> > from Facturas f
> > left outer join cobros c
> > on c.facturaid=f.facturaid
> > group by c.FActuraid
> >
> >
> >
> >
> > Jose Mariano Alvarez
> > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > Comunidad de base de datos
> > Grupo de Usuarios Microsoft
> > www.mug.org.ar
> >
> >
> > .
> > "Julio" wrote in message
> > news:
> > > Gracias Jose por tu ejemplo en este codigo, ya aqui queda todo
> registrado.
> > >
> > > Dos pregunta
> > >
> > > 1- porque deja registrado en negativo Importe cobrado
> > > 2 - Hay una forma de registrar cuando el cliente tiene una factura y
no
> a
> > > realizado pago durante el mes, pero yo necesito cobrarle la mora de
todo
> > > modo por el total de la factura ya que se Excedió de la fechaLimite
> > >
> > > Gracias por su maravillosa explicación
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>
> wrote
> > in
> > > message news:O$
> > > > Normalmente los pagos se almacenan en por lo menos dos tablas para
> > obtener
> > > > algunas de las funcionalidades que precisas.
> > > > Una tiene el pago en si mismo y la otra la imputación de los pagos
en
> > los
> > > > comprobantes que correspondan. Esta relación entre pagos e
> imputaciones
> > es
> > > 1
> > > > a N. y la de imputacion N a 1 con la de facturas o comprobantes.


Si
no
> > lo
> > > > haces de esa forma puedes perder información ya que si el cliente
por
> > > > ejemplo te adelanta dinero (algo improbable pero posible aunque


sean
> > solo
> > > > unos centavos), puede que no puedas registrarlo hasta la próxima
> > > > facturación.
> > > >
> > > > De cualquier forma no es lo mismo mora que recargo.
> > > > Lo que has expresado en tu correo original es "Lo que necesito es
> > acumular
> > > > el recargo por ClienteID y por facturaID tomando"
> > > > Ahora, recargo suele ser el importe adicional que le cobras a
alguien
> > por
> > > > algún hecho no imputable a ti. Por lo tanto pensaría que el mismo
> viene
> > en
> > > > el importe de la próxima factura como un ítem de la misma o es un
> > importe
> > > > que lo imputas en el momento del cobro pero haciéndole una factura
> > > > adicional. Entonces si lo que quieres es eso, hay que hacer más
cosas
> y
> > > > modificar el modelo.
> > > >
> > > > Siguiendo con tu ejemplo y tratando de interpretar lo que


precisas,
> esto
> > > > podria ser algo de lo que esperas obtener.
> > > >
> > > > ImporteCobradoEnFecha
> > > > ImporteCobradoRetrasado
> > > > ImportesImpagoNoVencido
> > > > ImportesImpagosVencido
> > > > ImportesImpagoAlVencimeinto
> > > > ImporteCobrado
> > > > ImporteImpago
> > > >
> > > > select
> > > > c.FacturaID ,
> > > > SUM(
> > > > case
> > > > when fechalimite >= Fechacobrado
> > > > then c.cantidad
> > > > else 0
> > > > end
> > > > ) ImporteCobradoEnFecha,
> > > > SUM(
> > > > case
> > > > when fechalimite < Fechacobrado
> > > > then c.cantidad
> > > > else 0
> > > > end
> > > > ) ImporteCobradoRetrasado,
> > > > SUM(
> > > > case
> > > > when getdate() <= fechalimite
> > > > then -c.cantidad
> > > > else 0
> > > > end
> > > > ) + MIN(f.cantidad) ImportesImpagoNoVencido,
> > > > SUM(
> > > > case
> > > > when getdate() > fechalimite
> > > > then -c.cantidad
> > > > else 0
> > > > end
> > > > ) + MIN(f.cantidad) ImportesImpagosVencido,
> > > > SUM(
> > > > case
> > > > when fechalimite >= Fechacobrado
> > > > then -c.cantidad
> > > > else 0
> > > > end
> > > > ) + MIN(f.cantidad) ImportesImpagoAlVencimeinto,
> > > > SUM(-c.cantidad ) ImporteCobrado -- Igual a la suma de los dos
> primeros
> > > > SUM(-c.cantidad ) + MIN(f.cantidad) ImporteImpago
> > > > from cobros c
> > > > inner join Facturas f
> > > > on c.facturaid=f.facturaid
> > > > group by c.FActuraid
> > > >
> > > >
> > > > Espero te sirva
> > > >
> > > > Jose Mariano Alvarez
> > > > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > > > Comunidad de base de datos
> > > > Grupo de Usuarios Microsoft
> > > > www.mug.org.ar
> > > >
> > > >
> > > > .
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Jose Mariano Alvarez \(MUG\)
19/04/2004 - 14:09 | Informe spam
Cambia la linea

select
c.FacturaID


por


select
f.facturaid


Saludos


Jose Mariano Alvarez
jose (.) alvarez * *Arroba* * mug (.) org (.) ar
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


.
"Julio" wrote in message
news:OH%23$
Hola José, el código me trae todos los registros como deben de ser,


excepto
la facturaID que me la trae en Null y la necesito para poder hacer la
transacción, esto es solamente para los clientes que no tienen pagos
registrado en cobros.



"Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar> wrote


in
message news:uzJ$
> Si, cuando hice el reemplazo el editor me saco el ,0
> Reemplaza los coalesce(c.cantidad) por coalesce(c.cantidad,0.0)
>
> Sin embargo me di cuenta que en algunas ocasiones puedes tener registros
con
> Fechacobrado en nulo y no lo analice. Deberías agregar estas condiciones
> también.
>
>
> Jose Mariano Alvarez
> jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> Comunidad de base de datos
> Grupo de Usuarios Microsoft
> www.mug.org.ar
>
>
> .
> "Julio" wrote in message
> news:
> > Gracias Jose por contestar, alparecer tengo un problema de sintaxis en
el
> > codigo. Cuando lo pruebo me da lo siguiente
> >
> > Server: Msg 170, Level 15, State 1, Line 6
> > Line 6: Incorrect syntax near ')'.
> >
> >
> >
> > "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>
wrote
> in
> > message news:%
> > > Ajusta los signos de acuerdo a como almacenas los datos
> > > Pon una bandera para indicar si no tiene pagos en la tabla por
ejemplo,
> > sino
> > > puedes verificar los importes.
> > >
> > > Se deslizaron un par de errores en el código que te pasara antes
> > >
> > > Saludos
> > >
> > >
> > > select
> > > c.FacturaID ,
> > > SUM(
> > > case
> > > when fechalimite >= Fechacobrado
> > > then coalesce(c.cantidad)
> > > else 0
> > > end
> > > ) ImporteCobradoEnFecha,
> > > SUM(
> > > case
> > > when fechalimite < Fechacobrado
> > > then coalesce(c.cantidad)
> > > else 0
> > > end
> > > ) ImporteCobradoRetrasado,
> > > SUM(
> > > case
> > > when getdate() <= fechalimite
> > > then -coalesce(c.cantidad)
> > > else 0
> > > end
> > > ) + MIN(f.cantidad) ImportesImpagoNoVencido,
> > > SUM(
> > > case
> > > when getdate() > fechalimite
> > > then -coalesce(c.cantidad)
> > > else 0
> > > end
> > > ) + MIN(f.cantidad) ImportesImpagosVencido,
> > > SUM(
> > > case
> > > when fechalimite >= Fechacobrado
> > > then -coalesce(c.cantidad)
> > > else 0
> > > end
> > > ) + MIN(f.cantidad) ImportesImpagoAlVencimeinto,
> > > SUM(-coalesce(c.cantidad) ) ImporteCobrado -- Igual a la suma de


los
> dos
> > > primeros
> > > SUM(-coalesce(c.cantidad) ) + MIN(f.cantidad) ImporteImpago
> > > from Facturas f
> > > left outer join cobros c
> > > on c.facturaid=f.facturaid
> > > group by c.FActuraid
> > >
> > >
> > >
> > >
> > > Jose Mariano Alvarez
> > > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > > Comunidad de base de datos
> > > Grupo de Usuarios Microsoft
> > > www.mug.org.ar
> > >
> > >
> > > .
> > > "Julio" wrote in message
> > > news:
> > > > Gracias Jose por tu ejemplo en este codigo, ya aqui queda todo
> > registrado.
> > > >
> > > > Dos pregunta
> > > >
> > > > 1- porque deja registrado en negativo Importe cobrado
> > > > 2 - Hay una forma de registrar cuando el cliente tiene una factura


y
> no
> > a
> > > > realizado pago durante el mes, pero yo necesito cobrarle la mora


de
> todo
> > > > modo por el total de la factura ya que se Excedió de la


fechaLimite
> > > >
> > > > Gracias por su maravillosa explicación
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* *


mug.org.ar>
> > wrote
> > > in
> > > > message news:O$
> > > > > Normalmente los pagos se almacenan en por lo menos dos tablas


para
> > > obtener
> > > > > algunas de las funcionalidades que precisas.
> > > > > Una tiene el pago en si mismo y la otra la imputación de los


pagos
> en
> > > los
> > > > > comprobantes que correspondan. Esta relación entre pagos e
> > imputaciones
> > > es
> > > > 1
> > > > > a N. y la de imputacion N a 1 con la de facturas o comprobantes.
Si
> no
> > > lo
> > > > > haces de esa forma puedes perder información ya que si el


cliente
> por
> > > > > ejemplo te adelanta dinero (algo improbable pero posible aunque
sean
> > > solo
> > > > > unos centavos), puede que no puedas registrarlo hasta la próxima
> > > > > facturación.
> > > > >
> > > > > De cualquier forma no es lo mismo mora que recargo.
> > > > > Lo que has expresado en tu correo original es "Lo que necesito


es
> > > acumular
> > > > > el recargo por ClienteID y por facturaID tomando"
> > > > > Ahora, recargo suele ser el importe adicional que le cobras a
> alguien
> > > por
> > > > > algún hecho no imputable a ti. Por lo tanto pensaría que el


mismo
> > viene
> > > en
> > > > > el importe de la próxima factura como un ítem de la misma o es


un
> > > importe
> > > > > que lo imputas en el momento del cobro pero haciéndole una


factura
> > > > > adicional. Entonces si lo que quieres es eso, hay que hacer más
> cosas
> > y
> > > > > modificar el modelo.
> > > > >
> > > > > Siguiendo con tu ejemplo y tratando de interpretar lo que
precisas,
> > esto
> > > > > podria ser algo de lo que esperas obtener.
> > > > >
> > > > > ImporteCobradoEnFecha
> > > > > ImporteCobradoRetrasado
> > > > > ImportesImpagoNoVencido
> > > > > ImportesImpagosVencido
> > > > > ImportesImpagoAlVencimeinto
> > > > > ImporteCobrado
> > > > > ImporteImpago
> > > > >
> > > > > select
> > > > > c.FacturaID ,
> > > > > SUM(
> > > > > case
> > > > > when fechalimite >= Fechacobrado
> > > > > then c.cantidad
> > > > > else 0
> > > > > end
> > > > > ) ImporteCobradoEnFecha,
> > > > > SUM(
> > > > > case
> > > > > when fechalimite < Fechacobrado
> > > > > then c.cantidad
> > > > > else 0
> > > > > end
> > > > > ) ImporteCobradoRetrasado,
> > > > > SUM(
> > > > > case
> > > > > when getdate() <= fechalimite
> > > > > then -c.cantidad
> > > > > else 0
> > > > > end
> > > > > ) + MIN(f.cantidad) ImportesImpagoNoVencido,
> > > > > SUM(
> > > > > case
> > > > > when getdate() > fechalimite
> > > > > then -c.cantidad
> > > > > else 0
> > > > > end
> > > > > ) + MIN(f.cantidad) ImportesImpagosVencido,
> > > > > SUM(
> > > > > case
> > > > > when fechalimite >= Fechacobrado
> > > > > then -c.cantidad
> > > > > else 0
> > > > > end
> > > > > ) + MIN(f.cantidad) ImportesImpagoAlVencimeinto,
> > > > > SUM(-c.cantidad ) ImporteCobrado -- Igual a la suma de los dos
> > primeros
> > > > > SUM(-c.cantidad ) + MIN(f.cantidad) ImporteImpago
> > > > > from cobros c
> > > > > inner join Facturas f
> > > > > on c.facturaid=f.facturaid
> > > > > group by c.FActuraid
> > > > >
> > > > >
> > > > > Espero te sirva
> > > > >
> > > > > Jose Mariano Alvarez
> > > > > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > > > > Comunidad de base de datos
> > > > > Grupo de Usuarios Microsoft
> > > > > www.mug.org.ar
> > > > >
> > > > >
> > > > > .
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Julio
19/04/2004 - 14:17 | Informe spam
Ok, Gracias Jose
"Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar> wrote in
message news:%
Cambia la linea

select
c.FacturaID


por


select
f.facturaid


Saludos


Jose Mariano Alvarez
jose (.) alvarez * *Arroba* * mug (.) org (.) ar
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


.
"Julio" wrote in message
news:OH%23$
> Hola José, el código me trae todos los registros como deben de ser,
excepto
> la facturaID que me la trae en Null y la necesito para poder hacer la
> transacción, esto es solamente para los clientes que no tienen pagos
> registrado en cobros.
>
>
>
> "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>


wrote
in
> message news:uzJ$
> > Si, cuando hice el reemplazo el editor me saco el ,0
> > Reemplaza los coalesce(c.cantidad) por coalesce(c.cantidad,0.0)
> >
> > Sin embargo me di cuenta que en algunas ocasiones puedes tener


registros
> con
> > Fechacobrado en nulo y no lo analice. Deberías agregar estas


condiciones
> > también.
> >
> >
> > Jose Mariano Alvarez
> > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > Comunidad de base de datos
> > Grupo de Usuarios Microsoft
> > www.mug.org.ar
> >
> >
> > .
> > "Julio" wrote in message
> > news:
> > > Gracias Jose por contestar, alparecer tengo un problema de sintaxis


en
> el
> > > codigo. Cuando lo pruebo me da lo siguiente
> > >
> > > Server: Msg 170, Level 15, State 1, Line 6
> > > Line 6: Incorrect syntax near ')'.
> > >
> > >
> > >
> > > "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>
> wrote
> > in
> > > message news:%
> > > > Ajusta los signos de acuerdo a como almacenas los datos
> > > > Pon una bandera para indicar si no tiene pagos en la tabla por
> ejemplo,
> > > sino
> > > > puedes verificar los importes.
> > > >
> > > > Se deslizaron un par de errores en el código que te pasara antes
> > > >
> > > > Saludos
> > > >
> > > >
> > > > select
> > > > c.FacturaID ,
> > > > SUM(
> > > > case
> > > > when fechalimite >= Fechacobrado
> > > > then coalesce(c.cantidad)
> > > > else 0
> > > > end
> > > > ) ImporteCobradoEnFecha,
> > > > SUM(
> > > > case
> > > > when fechalimite < Fechacobrado
> > > > then coalesce(c.cantidad)
> > > > else 0
> > > > end
> > > > ) ImporteCobradoRetrasado,
> > > > SUM(
> > > > case
> > > > when getdate() <= fechalimite
> > > > then -coalesce(c.cantidad)
> > > > else 0
> > > > end
> > > > ) + MIN(f.cantidad) ImportesImpagoNoVencido,
> > > > SUM(
> > > > case
> > > > when getdate() > fechalimite
> > > > then -coalesce(c.cantidad)
> > > > else 0
> > > > end
> > > > ) + MIN(f.cantidad) ImportesImpagosVencido,
> > > > SUM(
> > > > case
> > > > when fechalimite >= Fechacobrado
> > > > then -coalesce(c.cantidad)
> > > > else 0
> > > > end
> > > > ) + MIN(f.cantidad) ImportesImpagoAlVencimeinto,
> > > > SUM(-coalesce(c.cantidad) ) ImporteCobrado -- Igual a la suma de
los
> > dos
> > > > primeros
> > > > SUM(-coalesce(c.cantidad) ) + MIN(f.cantidad) ImporteImpago
> > > > from Facturas f
> > > > left outer join cobros c
> > > > on c.facturaid=f.facturaid
> > > > group by c.FActuraid
> > > >
> > > >
> > > >
> > > >
> > > > Jose Mariano Alvarez
> > > > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > > > Comunidad de base de datos
> > > > Grupo de Usuarios Microsoft
> > > > www.mug.org.ar
> > > >
> > > >
> > > > .
> > > > "Julio" wrote in message
> > > > news:
> > > > > Gracias Jose por tu ejemplo en este codigo, ya aqui queda todo
> > > registrado.
> > > > >
> > > > > Dos pregunta
> > > > >
> > > > > 1- porque deja registrado en negativo Importe cobrado
> > > > > 2 - Hay una forma de registrar cuando el cliente tiene una


factura
y
> > no
> > > a
> > > > > realizado pago durante el mes, pero yo necesito cobrarle la mora
de
> > todo
> > > > > modo por el total de la factura ya que se Excedió de la
fechaLimite
> > > > >
> > > > > Gracias por su maravillosa explicación
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* *
mug.org.ar>
> > > wrote
> > > > in
> > > > > message news:O$
> > > > > > Normalmente los pagos se almacenan en por lo menos dos tablas
para
> > > > obtener
> > > > > > algunas de las funcionalidades que precisas.
> > > > > > Una tiene el pago en si mismo y la otra la imputación de los
pagos
> > en
> > > > los
> > > > > > comprobantes que correspondan. Esta relación entre pagos e
> > > imputaciones
> > > > es
> > > > > 1
> > > > > > a N. y la de imputacion N a 1 con la de facturas o


comprobantes.
> Si
> > no
> > > > lo
> > > > > > haces de esa forma puedes perder información ya que si el
cliente
> > por
> > > > > > ejemplo te adelanta dinero (algo improbable pero posible


aunque
> sean
> > > > solo
> > > > > > unos centavos), puede que no puedas registrarlo hasta la


próxima
> > > > > > facturación.
> > > > > >
> > > > > > De cualquier forma no es lo mismo mora que recargo.
> > > > > > Lo que has expresado en tu correo original es "Lo que necesito
es
> > > > acumular
> > > > > > el recargo por ClienteID y por facturaID tomando"
> > > > > > Ahora, recargo suele ser el importe adicional que le cobras a
> > alguien
> > > > por
> > > > > > algún hecho no imputable a ti. Por lo tanto pensaría que el
mismo
> > > viene
> > > > en
> > > > > > el importe de la próxima factura como un ítem de la misma o es
un
> > > > importe
> > > > > > que lo imputas en el momento del cobro pero haciéndole una
factura
> > > > > > adicional. Entonces si lo que quieres es eso, hay que hacer


más
> > cosas
> > > y
> > > > > > modificar el modelo.
> > > > > >
> > > > > > Siguiendo con tu ejemplo y tratando de interpretar lo que
> precisas,
> > > esto
> > > > > > podria ser algo de lo que esperas obtener.
> > > > > >
> > > > > > ImporteCobradoEnFecha
> > > > > > ImporteCobradoRetrasado
> > > > > > ImportesImpagoNoVencido
> > > > > > ImportesImpagosVencido
> > > > > > ImportesImpagoAlVencimeinto
> > > > > > ImporteCobrado
> > > > > > ImporteImpago
> > > > > >
> > > > > > select
> > > > > > c.FacturaID ,
> > > > > > SUM(
> > > > > > case
> > > > > > when fechalimite >= Fechacobrado
> > > > > > then c.cantidad
> > > > > > else 0
> > > > > > end
> > > > > > ) ImporteCobradoEnFecha,
> > > > > > SUM(
> > > > > > case
> > > > > > when fechalimite < Fechacobrado
> > > > > > then c.cantidad
> > > > > > else 0
> > > > > > end
> > > > > > ) ImporteCobradoRetrasado,
> > > > > > SUM(
> > > > > > case
> > > > > > when getdate() <= fechalimite
> > > > > > then -c.cantidad
> > > > > > else 0
> > > > > > end
> > > > > > ) + MIN(f.cantidad) ImportesImpagoNoVencido,
> > > > > > SUM(
> > > > > > case
> > > > > > when getdate() > fechalimite
> > > > > > then -c.cantidad
> > > > > > else 0
> > > > > > end
> > > > > > ) + MIN(f.cantidad) ImportesImpagosVencido,
> > > > > > SUM(
> > > > > > case
> > > > > > when fechalimite >= Fechacobrado
> > > > > > then -c.cantidad
> > > > > > else 0
> > > > > > end
> > > > > > ) + MIN(f.cantidad) ImportesImpagoAlVencimeinto,
> > > > > > SUM(-c.cantidad ) ImporteCobrado -- Igual a la suma de los


dos
> > > primeros
> > > > > > SUM(-c.cantidad ) + MIN(f.cantidad) ImporteImpago
> > > > > > from cobros c
> > > > > > inner join Facturas f
> > > > > > on c.facturaid=f.facturaid
> > > > > > group by c.FActuraid
> > > > > >
> > > > > >
> > > > > > Espero te sirva
> > > > > >
> > > > > > Jose Mariano Alvarez
> > > > > > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > > > > > Comunidad de base de datos
> > > > > > Grupo de Usuarios Microsoft
> > > > > > www.mug.org.ar
> > > > > >
> > > > > >
> > > > > > .
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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