Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
1| Name | Data Type | Length | Description |
|---|---|---|---|
| @hoy | date | 3 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec api_consumos
select * from apikey where producto =40
select * from productos where producto=40
*/
CREATE OR ALTER PROCEDURE dbo.apikey_consumo_mensual_
@hoy date = '2022-02-01'
AS
BEGIN
SET NOCOUNT ON;
declare @ant_lastday date = null
declare @ant_firstday date = null
if (convert(varchar,DAY(@hoy)) = '1')
begin
set @ant_lastday = DATEADD(dd, -1, @hoy)
set @ant_firstday = DATEADD(mm, -1, @hoy)
end
declare @id int, @pUserKey int, @pProdKey int
declare @consumo bigint
DECLARE C_api_consumo CURSOR FOR
select distinct apikey.user_id,apikey.producto, id_api_key
from apikey
inner join usuarios_productos on (apikey.user_id=usuarios_productos.user_id and apikey.producto=usuarios_productos.id_producto)
left join clientes_productos on (usuarios_productos.cliente = clientes_productos.cliente and clientes_productos.id_producto=usuarios_productos.id_producto and usuarios_productos.id_seccion=0)
where apikey.activo = 1
order by id_api_key
OPEN C_api_consumo
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@id
WHILE @@fetch_status = 0
BEGIN
if not exists (select * from [apikey_consumo_mensual] where id_api_key = @id and mes = @ant_lastday)
begin
select @consumo = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) between @ant_firstday and @ant_lastday
insert into apikey_consumo_mensual (id_api_key, mes, consumo_mes)
values (@id, @ant_lastday, @consumo)
end
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@id
END
CLOSE C_api_consumo
DEALLOCATE C_api_consumo
END
/*
update apikey set vigencia_desde = '2022-01-01 00:00:000' WHERE activo = 1
select * from apikey where id_api_key = 19
select * from apikey where user_id = 399154624 and producto = 27
select * from [apikey_consumo_mensual]
*/
GO
GO
/*
exec api_consumos
select * from apikey where producto =40
select * from productos where producto=40
*/
CREATE OR ALTER PROCEDURE dbo.apikey_consumo_mensual_
@hoy date = '2022-02-01'
AS
BEGIN
SET NOCOUNT ON;
declare @ant_lastday date = null
declare @ant_firstday date = null
if (convert(varchar,DAY(@hoy)) = '1')
begin
set @ant_lastday = DATEADD(dd, -1, @hoy)
set @ant_firstday = DATEADD(mm, -1, @hoy)
end
declare @id int, @pUserKey int, @pProdKey int
declare @consumo bigint
DECLARE C_api_consumo CURSOR FOR
select distinct apikey.user_id,apikey.producto, id_api_key
from apikey
inner join usuarios_productos on (apikey.user_id=usuarios_productos.user_id and apikey.producto=usuarios_productos.id_producto)
left join clientes_productos on (usuarios_productos.cliente = clientes_productos.cliente and clientes_productos.id_producto=usuarios_productos.id_producto and usuarios_productos.id_seccion=0)
where apikey.activo = 1
order by id_api_key
OPEN C_api_consumo
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@id
WHILE @@fetch_status = 0
BEGIN
if not exists (select * from [apikey_consumo_mensual] where id_api_key = @id and mes = @ant_lastday)
begin
select @consumo = count(*) from usuarios_consumos where user_id= @pUserKey and id_producto=@pProdKey and convert(date,created) between @ant_firstday and @ant_lastday
insert into apikey_consumo_mensual (id_api_key, mes, consumo_mes)
values (@id, @ant_lastday, @consumo)
end
FETCH NEXT FROM C_api_consumo INTO @pUserKey,@pProdKey,@id
END
CLOSE C_api_consumo
DEALLOCATE C_api_consumo
END
/*
update apikey set vigencia_desde = '2022-01-01 00:00:000' WHERE activo = 1
select * from apikey where id_api_key = 19
select * from apikey where user_id = 399154624 and producto = 27
select * from [apikey_consumo_mensual]
*/
GO
Depends On
5Used By
No items found