Insert

07/04/2004 - 19:09 por Rodriguez | Informe spam
Hola Grupo

Tengo una tabla y siguiera lo siguiente

ConsumoID Fecha ClienteID Consumo Total
1 01/01/04 1 0 0
2 01/02/04 1 75 75
3 01/03/04 1 100 25
4 01/01/04 2 0 0
5 01/02/04 2 60 60
Quiero tener el campo total calculado, es decir que me reste el consumo del
mes anterior
del mes actual.
Aqui suponemos que iniciara en el mes 01/010/01 en '0' por lo tanto el total
es igual a cero, luego en el mes 01/02/04 el total es igual a 75 porque
75 -0 = 0, luego en la fecha 01/03/04 el total es igual a 25 ya que 100-75
%
Donde el clienteID tiene que ser igual al clienteID

Lo que esta cliente consume en un mes se le factura a ese mes y lo que
consume el proximo mes es igual a ese mes menos el mes anterior y este es el
monto al cual se le facturara el mes.

No se si esto hay que crear otra tabla para poderlo organizar por clienteID.

Como puedo lograr esto ?

Preguntas similare

Leer las respuestas

#1 Javier Loria
07/04/2004 - 19:35 | Informe spam
Hola:
Los campos calculados no puede hacer referencias a otras filas de la
tabla :(
Lo que deseas puedes hacerlo con una tabla o con una vista. En este caso
me parece la vista es mas apropiada, algo como:
=CREATE VIEW ClienteConsumoMensual
AS
SELECT Tabla.ConsumoId
, Tabla.Fecha
, Tabla.ClienteId
, Tabla.Consumo
, Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS Total
FROM Tabla
LEFT JOIN Tabla AS Anterior
ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
= No esta probado asi que puede tener errores de sintaxis.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Rodriguez" wrote in message
news:O%
Hola Grupo

Tengo una tabla y siguiera lo siguiente

ConsumoID Fecha ClienteID Consumo Total
1 01/01/04 1 0 0
2 01/02/04 1 75 75
3 01/03/04 1 100 25
4 01/01/04 2 0 0
5 01/02/04 2 60 60
Quiero tener el campo total calculado, es decir que me reste el consumo


del
mes anterior
del mes actual.
Aqui suponemos que iniciara en el mes 01/010/01 en '0' por lo tanto el


total
es igual a cero, luego en el mes 01/02/04 el total es igual a 75 porque
75 -0 = 0, luego en la fecha 01/03/04 el total es igual a 25 ya que 100-75
%
Donde el clienteID tiene que ser igual al clienteID

Lo que esta cliente consume en un mes se le factura a ese mes y lo que
consume el proximo mes es igual a ese mes menos el mes anterior y este es


el
monto al cual se le facturara el mes.

No se si esto hay que crear otra tabla para poderlo organizar por


clienteID.

Como puedo lograr esto ?








Respuesta Responder a este mensaje
#2 Rodriguez
08/04/2004 - 14:23 | Informe spam
Lo probe pero tengo problema con esto ya que no me hace la resta adecuada
y no toma en cuenta el cleinteID, ya que cuando se hace un insert la resta
se debe aplicar al consumo de cada cliente ID

"Javier Loria" wrote in message
news:%
Hola:
Los campos calculados no puede hacer referencias a otras filas de la
tabla :(
Lo que deseas puedes hacerlo con una tabla o con una vista. En este


caso
me parece la vista es mas apropiada, algo como:
=> CREATE VIEW ClienteConsumoMensual
AS
SELECT Tabla.ConsumoId
, Tabla.Fecha
, Tabla.ClienteId
, Tabla.Consumo
, Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS Total
FROM Tabla
LEFT JOIN Tabla AS Anterior
ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
=> No esta probado asi que puede tener errores de sintaxis.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Rodriguez" wrote in message
news:O%
> Hola Grupo
>
> Tengo una tabla y siguiera lo siguiente
>
> ConsumoID Fecha ClienteID Consumo Total
> 1 01/01/04 1 0 0
> 2 01/02/04 1 75 75
> 3 01/03/04 1 100 25
> 4 01/01/04 2 0


0
> 5 01/02/04 2 60 60
> Quiero tener el campo total calculado, es decir que me reste el consumo
del
> mes anterior
> del mes actual.
> Aqui suponemos que iniciara en el mes 01/010/01 en '0' por lo tanto el
total
> es igual a cero, luego en el mes 01/02/04 el total es igual a 75 porque
> 75 -0 = 0, luego en la fecha 01/03/04 el total es igual a 25 ya que


100-75
> %
> Donde el clienteID tiene que ser igual al clienteID
>
> Lo que esta cliente consume en un mes se le factura a ese mes y lo que
> consume el proximo mes es igual a ese mes menos el mes anterior y este


es
el
> monto al cual se le facturara el mes.
>
> No se si esto hay que crear otra tabla para poderlo organizar por
clienteID.
>
> Como puedo lograr esto ?
>
>
>
>
>
>
>
>


Respuesta Responder a este mensaje
#3 Javier Loria
08/04/2004 - 20:07 | Informe spam
Hola:
Si disculpa se me olvido poner la condicion del cliente:
==CREATE VIEW ClienteConsumoMensual
AS
SELECT Tabla.ConsumoId
, Tabla.Fecha
, Tabla.ClienteId
, Tabla.Consumo
, Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS Total
FROM Tabla
LEFT JOIN Tabla AS Anterior
ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
AND Tabla.ClienteID=Anterior.ClienteID
== Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Rodriguez escribio:
Lo probe pero tengo problema con esto ya que no me hace la resta
adecuada
y no toma en cuenta el cleinteID, ya que cuando se hace un insert la
resta se debe aplicar al consumo de cada cliente ID

"Javier Loria" wrote in message
news:%
Hola:
Los campos calculados no puede hacer referencias a otras filas
de la tabla :(
Lo que deseas puedes hacerlo con una tabla o con una vista. En
este caso me parece la vista es mas apropiada, algo como:
=>> CREATE VIEW ClienteConsumoMensual
AS
SELECT Tabla.ConsumoId
, Tabla.Fecha
, Tabla.ClienteId
, Tabla.Consumo
, Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS
Total FROM Tabla
LEFT JOIN Tabla AS Anterior
ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
=>> No esta probado asi que puede tener errores de sintaxis.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Rodriguez" wrote in message
news:O%
Hola Grupo

Tengo una tabla y siguiera lo siguiente

ConsumoID Fecha ClienteID Consumo Total
1 01/01/04 1 0
0 2 01/02/04 1 75
75 3 01/03/04 1 100
25 4 01/01/04 2 0




0
5 01/02/04 2 60
60 Quiero tener el campo total calculado, es decir que me reste el
consumo del mes anterior
del mes actual.
Aqui suponemos que iniciara en el mes 01/010/01 en '0' por lo tanto
el total es igual a cero, luego en el mes 01/02/04 el total es
igual a 75 porque 75 -0 = 0, luego en la fecha 01/03/04 el total es
igual a 25 ya que 100-75 %
Donde el clienteID tiene que ser igual al clienteID

Lo que esta cliente consume en un mes se le factura a ese mes y lo
que consume el proximo mes es igual a ese mes menos el mes anterior
y este es el monto al cual se le facturara el mes.

No se si esto hay que crear otra tabla para poderlo organizar por
clienteID.

Como puedo lograr esto ?
Respuesta Responder a este mensaje
#4 julio
09/04/2004 - 21:21 | Informe spam
Gracias Javier por este ejemplo funciona a la perfección, ahora estuve
asiendo prueba y veo que tienen que coincidir el mes actual con el mes
pasado en cuanto a días y mes, pero tengo un problema que si en el mes
presente se hace un insert con un día de diferencia del mes anterior no
realiza la resta, es decir resta el valor actual por cero donde debería ser
no por cero sino por el valor anterior.



Por otra parte existe una forma de restar el valor presente del valor
anterior sin mirar la fecha si no otro parámetro, puede ser el ultimo
identity de ese ClienteID



Gracias de antes manos

.






"Javier Loria" wrote in message
news:%23xat%
Hola:
Si disculpa se me olvido poner la condicion del cliente:
==> CREATE VIEW ClienteConsumoMensual
AS
SELECT Tabla.ConsumoId
, Tabla.Fecha
, Tabla.ClienteId
, Tabla.Consumo
, Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS Total
FROM Tabla
LEFT JOIN Tabla AS Anterior
ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
AND Tabla.ClienteID=Anterior.ClienteID
==> Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Rodriguez escribio:
> Lo probe pero tengo problema con esto ya que no me hace la resta
> adecuada
> y no toma en cuenta el cleinteID, ya que cuando se hace un insert la
> resta se debe aplicar al consumo de cada cliente ID
>
> "Javier Loria" wrote in message
> news:%
>> Hola:
>> Los campos calculados no puede hacer referencias a otras filas
>> de la tabla :(
>> Lo que deseas puedes hacerlo con una tabla o con una vista. En
>> este caso me parece la vista es mas apropiada, algo como:
>> => >> CREATE VIEW ClienteConsumoMensual
>> AS
>> SELECT Tabla.ConsumoId
>> , Tabla.Fecha
>> , Tabla.ClienteId
>> , Tabla.Consumo
>> , Tabla.Consumo-COALESCE(Anterior.Consumo,0) AS
>> Total FROM Tabla
>> LEFT JOIN Tabla AS Anterior
>> ON Tabla.FechaÚTEADD(mm,1,Anterior.Fecha)
>> => >> No esta probado asi que puede tener errores de sintaxis.
>> Saludos,
>>
>> Javier Loria
>> Costa Rica
>> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
>> que pueda ser copiado y pegado al Query Analizer.
>> La version de SQL y Service Pack tambien ayuda.
>>
>> "Rodriguez" wrote in message
>> news:O%
>>> Hola Grupo
>>>
>>> Tengo una tabla y siguiera lo siguiente
>>>
>>> ConsumoID Fecha ClienteID Consumo Total
>>> 1 01/01/04 1 0
>>> 0 2 01/02/04 1 75
>>> 75 3 01/03/04 1 100
>>> 25 4 01/01/04 2 0
> 0
>>> 5 01/02/04 2 60
>>> 60 Quiero tener el campo total calculado, es decir que me reste el
>>> consumo del mes anterior
>>> del mes actual.
>>> Aqui suponemos que iniciara en el mes 01/010/01 en '0' por lo tanto
>>> el total es igual a cero, luego en el mes 01/02/04 el total es
>>> igual a 75 porque 75 -0 = 0, luego en la fecha 01/03/04 el total es
>>> igual a 25 ya que 100-75 %
>>> Donde el clienteID tiene que ser igual al clienteID
>>>
>>> Lo que esta cliente consume en un mes se le factura a ese mes y lo
>>> que consume el proximo mes es igual a ese mes menos el mes anterior
>>> y este es el monto al cual se le facturara el mes.
>>>
>>> No se si esto hay que crear otra tabla para poderlo organizar por
>>> clienteID.
>>>
>>> Como puedo lograr esto ?


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