Foro oficial de SQL

webcarlosf

Lanero Regular
14 Feb 2015
28
Buenos dias a todos...

Una consulta, tengo que hacer un sql que cuente el numero de registros que se crean por minuto en un dia.

Alguna idea, porfa...

Gracias...
 

angelik570

Lanero Reconocido
5 Jun 2013
519
Buenos dias a todos...

Una consulta, tengo que hacer un sql que cuente el numero de registros que se crean por minuto en un dia.

Alguna idea, porfa...

Gracias...
Agregar a la tabla requerida un campo de tipo fecha, por ejemplo "fecha_creacion", ponerle por defecto el valor de la función getdate() y luego que pase un día ya puedes haces el count de los registros correspondientes a la fecha que necesites.

Cabe anotar que esto sólo funcionará desde el día en que implementes el nuevo campo en la tabla.
 

––•(ByAlaN)•––

Lanero Reconocido
8 Ene 2004
6,898
Buenos dias a todos...

Una consulta, tengo que hacer un sql que cuente el numero de registros que se crean por minuto en un dia.

Alguna idea, porfa...

Gracias...

Hola.

Si usas SQL Server mira un ejemplo que te puede ayudar..

PHP:
--Crear Tabla
CREATE TABLE #TransactionPerMin
(
    Id int identity,
    RegisterDate DATETIME
)

--Insertamos 100 registros con un retraso,
--Con una diferencia de 3 segundos entre cada registro.
INSERT INTO  #TransactionPerMin
VALUES (DATEADD(SECOND, 3, GETDATE()))
WAITFOR DELAY '00:00:03'
GO 100

--Agrupar por un periodo determinado, en este caso, segundos.
SELECT DATEPART(MINUTE, RegisterDate) AS Minuto
      ,COUNT(Id) AS Qty
FROM #TransactionPerMin
GROUP BY  DATEPART(MINUTE, RegisterDate)

SuerteX :)
 

NSlaver

Jack of all trades
16 Abr 2002
3,548
Buenos dias a todos...

Una consulta, tengo que hacer un sql que cuente el numero de registros que se crean por minuto en un dia.

Alguna idea, porfa...

Gracias...

La idea de modificar la tabla/agregar para agregarle datos de tiempos no es muy viable y de hecho NO ES RECOMENDABLE......
Para que lo necesitarias? estadistias en tiempo real?
Si lo que necesitas es ver el movimiento en tiempo real o historico sobre una tabla que ya tenes, seria mas o menos así:
Tener una tabla auxiliar que te lleve la cantidad de registros (row count) en un instante determinado y tener asociado un fecha/hora(time stamp), así la tabla puede tener datos y los organizas como necesites.
Inclusive según lo que necesites lo podes ir consultando....
 
  • Me gusta
Reacciones: webcarlosf

––•(ByAlaN)•––

Lanero Reconocido
8 Ene 2004
6,898
La idea de modificar la tabla/agregar para agregarle datos de tiempos no es muy viable y de hecho NO ES RECOMENDABLE......
Para que lo necesitarias? estadistias en tiempo real?
Si lo que necesitas es ver el movimiento en tiempo real o historico sobre una tabla que ya tenes, seria mas o menos así:
Tener una tabla auxiliar que te lleve la cantidad de registros (row count) en un instante determinado y tener asociado un fecha/hora(time stamp), así la tabla puede tener datos y los organizas como necesites.
Inclusive según lo que necesites lo podes ir consultando....

Hola

Supongo que es una tarea de la uni o algo asi.... pero en caso de no serlo, pienso que podria ser para determinar el numero de transacciones en un periodo determinado, por lo que supongo que la informacion que va a consultar ya contiene el campo fecha.


SuerteX :)
 
  • Me gusta
Reacciones: webcarlosf

webcarlosf

Lanero Regular
14 Feb 2015
28
La idea de modificar la tabla/agregar para agregarle datos de tiempos no es muy viable y de hecho NO ES RECOMENDABLE......
Para que lo necesitarias? estadistias en tiempo real?
Si lo que necesitas es ver el movimiento en tiempo real o historico sobre una tabla que ya tenes, seria mas o menos así:
Tener una tabla auxiliar que te lleve la cantidad de registros (row count) en un instante determinado y tener asociado un fecha/hora(time stamp), así la tabla puede tener datos y los organizas como necesites.
Inclusive según lo que necesites lo podes ir consultando....

Hola buenos dias,

La tabla que voy a usar ya tiene este campo fecha de creación, y es algo informativo, osea es una plataforma de pagos en linea y la idea es hacer un informe diario de cuanto pagos se hacen al día por minuto... la cosa es que la primera vez que se lance el SQL tiene que traer todos los pagos desde el año 2008 asta el día anterior a la fecha actual... luego si se debe hacer diario... osea del día anterior...
 

NSlaver

Jack of all trades
16 Abr 2002
3,548
Teniendo en cuenta la cantidad de registros que podes estar manejando y que la base debe tener una cantidad absurda de información, yo implementaría así las cosas:

*Definir la fecha más significativa de la tabla que sea aceptada como creación del registro

*Dividir el problema en dos partes:

-Registros existentes

-Registros nuevos

*Crear la tabla estadística con los campos time stamp (tiempo de captura), cantidad, puede alojar múltiples estadísticas de distintas bases/tablas..

*Para los existentes: Definiría un rango de cada registro de tiempo y segmentaria el tiempo desde su creación hasta la fecha de hoy o una fecha determinada.

Importante definir bien el rango de tiempo porque si son 12 horas tenes 720 registros por año, si es media hora tendrás 8760 por año y así…… según lo que necesites.

Inclusive si podes manejar los rangos de manera irregular en base a un campo que se encuentre indexado y te pueda dar la cantidad de registros sin llamar funciones o hacer cálculos sería más rápido… Pero ahí creo que podría ser inexacto o no deseado…..

* Para los nuevos: Manejar un procedimiento que dada 5, 15, 30 segundos valla agregando a la misma tabla la fecha/hora de la toma del dato y la cantidad de registros existentes

Ahí tienes una tabla en donde la consulta de los últimos datos te va a dar información instantánea de la inserción de registro para el delta de tiempo definido y información historia con un delta de tiempo que podes negociar con tus jefes….
 

webcarlosf

Lanero Regular
14 Feb 2015
28
Buenos dias a todos...
Una pregunta...
Tengo dos tablas... la tabla2 tiene una relacion con la tabla1 con dos campos... ejemplo: id_tb1_unico y id_tb1_cod.... tengo que hacer un update a la tabla 2... pero en la tabla 2 puede haber dos o mas registros relacionados con esos dos campos.... como realizar el update sin error o sin dañar todos los datos...

Espero haberme hecho entender...

Gracias...
 

Migue.Perez

Lanero Reconocido
14 May 2007
491
no entiendo muy bien, pero creo que si quieres actualizar los campas en las 2 tablas para no perder integridad de la base de datos podrias utilizar un trigger que actualize tambien la tabla relacionada, no se si te sirva eso o depronto fue que no entendi muy bien la pregunta.
 

NSlaver

Jack of all trades
16 Abr 2002
3,548
Buenos dias a todos...
Una pregunta...
Tengo dos tablas... la tabla2 tiene una relacion con la tabla1 con dos campos... ejemplo: id_tb1_unico y id_tb1_cod.... tengo que hacer un update a la tabla 2... pero en la tabla 2 puede haber dos o mas registros relacionados con esos dos campos.... como realizar el update sin error o sin dañar todos los datos...

Espero haberme hecho entender...

Gracias...

Debería mirar el diseño que tiene su base/programa, no debe tener problemas de ese tipo al hacer modificaciones si tiene sus tablas bien referenciadas y con sus respectivas restricciones....
 

kP-GoYo

LANero Despistado
10 Mar 2005
2,492
Buenas compañeros, tengo un pequeño lío, necesito sacar una consulta de unas tablas y yo en SQL no soy muy bueno sobre todo con los JOIN, requiero de su ayuda, les voy a tratar de plantear todo de una manera práctica y les muestro la consulta básica que yo usaba y que traté de adaptar:

Tengo 4 tablas:

BHD (Ventas)
presupuesto (Presupuesto por cliente mensual)
DRM (Clientes)
BSD (Detalle Ventas)

Que necesito? necesito toda la tabla de presupuesto con todas las ventas, con la consulta que tengo ahora mismo me muestra o las ventas que tienen presupuesto o los presupuestos que tienen ventas... la idea es en un excel luego organizar por trimestre y montón de cosas más q pidió el patrón :D

Estos son los datos que necesito que salgan:

El año de un campo que se llama TRAVELDATE (fecha de viaje) de la tabla BHD, el nombre del mes de presupuesto, el trimestre de presupuesto, el nombre del cliente de DRM, un campo RETAIL que es el valor de la venta (total) en la tabla BSD, el valor del presupuesto.

Así se relacionan las tablas:

BHD con DRM por el codigo del cliente (AGENT y CODE respectivamente)
presupuesto con DRM por el codigo del cliente (CODE y CODE)
BHD con presupuesto lo cruzo por el año y por el mes
BHD con BSD lo cruzo por un consecutivo que hay entre las dos tablas (BHD_ID)

Las condiciones:

Que sea solo el año 2016 (igual en el presupuesto solo hay valores del 2016)
que el estatus de la venta esté dentro de un filtro (BHD.STATUS in ('OK','OP','ON','XC'))
Que en BSL para ese BHD_ID otro consecutivo el BSL_ID sea 0 (esto lo identifica como el encabezado pues solo hay una tabla para encabezado y detalle y el encabezado con la suma de la venta lo identifica con este BSL_ID en cero, el detalle tiene un consecutivo y es cada item de la "factura")

La tabla más importante es la de presupuesto, de ahi debe partir el filtro y luego mostrar los demás registros, en ese orden de ideas mostrar todo el presupuesto con todas las ventas para esos clientes que tienen presuesto, abajo un ejemplo de esta tabla:

1 CLAV01 2016 1 Enero 1 258.0000
2 ELLVOY 2016 1 Enero 1 258.0000
3 HIATUS 2016 1 Enero 1 2000.0000
4 TRAXPE 2016 1 Enero 1 560.0000
5 1STCLA 2016 1 Enero 1 12000.0000
6 ABEKEN 2016 1 Enero 1 11330.0000
7 ADVENT 2016 1 Enero 1 3535.0000
8 ALEROB 2016 1 Enero 1 6412.0000
9 AVANTI 2016 1 Enero 1 2848.0000
10 GOWAY 2016 1 Enero 1 7815.0000
11 LATOUR 2016 1 Enero 1 4200.0000
12 JUMBO 2016 1 Enero 1 5130.0000
13 LLATRA 2016 1 Enero 1 3000.0000
14 VELOSO 2016 1 Enero 1 14749.0000
15 MTARGE 2016 1 Enero 1 500.0000
16 INTERP 2016 1 Enero 1 4000.0000
17 MATUET 2016 1 Enero 1 6000.0000
18 POMPTU 2016 1 Enero 1 2000.0000
19 PRIMET 2016 1 Enero 1 300.0000
20 SELECT 2016 1 Enero 1 3000.0000
21 VISUAL 2016 1 Enero 1 1000.0000
22 INTERM 2016 1 Enero 1 1000.0000
23 GRBR01 2016 1 Enero 1 2800.0000
24 DONATO 2016 1 Enero 1 2388.0000
25 MITURV 2016 1 Enero 1 2800.0000
26 JETOUR 2016 1 Enero 1 7000.0000
27 NOBLEC 2016 1 Enero 1 8000.0000
28 ALTOUR 2016 2 Febrero 1 2190.0000
29 CLAV01 2016 2 Febrero 1 2619.0000
30 CLAV02 2016 2 Febrero 1 300.0000
31 CLAT02 2016 2 Febrero 1 200.0000
32 CLAV03 2016 2 Febrero 1 500.0000
33 CLAV04 2016 2 Febrero 1 200.0000
34 CLAV05 2016 2 Febrero 1 100.0000
35 CLAT05 2016 2 Febrero 1 300.0000

el primer campo es un id sin importancia, el segundo es el codigo del cliente (CODE) el tercero el año, el cuarto el mes y el quinto el mes en nombre (esto es para organizarlo en excel luego por trimestre y para el eso el sexto campo igual, el último campo es el valor presupuestado para ese cliente para ese mes. Anexo la consulta que tengo diseñada ahora y les agradezco mucho si me pueden ayudar:

select YEAR(B.TRAVELDATE) as periodo, P.nom_mes as Mes, P.trimestre as Trimestre, D.NAME as Cliente,
BS.RETAIL as Venta, P.valor as Presupuesto
from presupuesto P, BHD B, BSD BS, DRM D
WHERE P.ano = '2016' AND B.STATUS IN ('OK','OP','ON','XC') AND
BS.BSL_ID = 0 AND
P.code = B.AGENT AND
B.BHD_ID = BS.BHD_ID AND
P.CODE = D.CODE AND
P.ANO = YEAR(B.TRAVELDATE) and
p.mes = DATEPART(MONTH,b.traveldate)
 

MædCo

@MaEdCo
12 May 2007
8,858
Hola, no sabia donde mas preguntarlo así que lo pongo aquí, alguien tiene un ejemplo de una base de datos sencilla? es para explicar a un nivel bajo, estaba buscando una de alumnos, pero para explicar lo de las relaciones no me sirve de a mucho, encontré una de una libreria pero si les menciono el ISBN los dejo locos , por eso me parece mas facil algo de alumnos por el documento de identidad ellos van entender que es una llave primaria , o no se una de inventario, quiero algo básico y sencillo con unas 4 a 6 tablas, gracias
 

ANDRESOTE_8

Tigre VIP.
18 Ene 2009
8,250
Hola, no sabia donde mas preguntarlo así que lo pongo aquí, alguien tiene un ejemplo de una base de datos sencilla? es para explicar a un nivel bajo, estaba buscando una de alumnos, pero para explicar lo de las relaciones no me sirve de a mucho, encontré una de una libreria pero si les menciono el ISBN los dejo locos , por eso me parece mas facil algo de alumnos por el documento de identidad ellos van entender que es una llave primaria , o no se una de inventario, quiero algo básico y sencillo con unas 4 a 6 tablas, gracias
Mire esto; de pronto le sirve. http://www.campusmvp.es/recursos/post/Disenando-una-base-de-datos-en-el-modelo-relacional.aspx

En general, puede buscar en Google "ejemplos de bases de datos relacionales".
 
  • Me gusta
Reacciones: MædCo

AndreNeumann

Lanero Regular
7 Dic 2018
1
1) Cliente de Oracle
2) TOAD ó Navicat (Pagos)
3) Oracle SQL Developer (Libre)
4) TOAD Light (Libre pero hay que reinstalarlo cada 3 meses)


- TOAD es lo más robusto y poderoso que existe
- Navicat tiene la mejor GUI, sencilla y refácil de usar!!! =)


Bueno, ahí tiene para que escoja pues!!! :p

Pruebe dbForge Studio para Oracle: creo que esta es una herramienta bastante buena con muchas características útiles. He estado usando dbForge Studio para Oracle por más de 8 meses y me parece útil esta herramienta, especialmente conveniente para el asistente de importación / exportación de Oracle.
 

MædCo

@MaEdCo
12 May 2007
8,858
como hago para ejecutar una consulta en SQL Server , lo que necesito es que devuelva solo las facturas que están en un rango de fechas, por ahora por ejemplo necesito las facturas del 1 de enero del 2020 al 28 de febrero de 2020

he intentando las siguientes instrucciones pero no se por que me arroja facturas del 2019, el campo FechaFactura es tipo date

  • where FechaFactura between '2020-01-01' and '2020-02-28'
  • where FechaFactura >= '20200101' and FechaFactura<= '20200228'
  • where FechaFactura >= '2020/01/01' and FechaFactura<= '2020/02/28'

también lo hice con cast(FechaFactura as date) y nada, ya me quede sin ideas, les agradezco su colaboración.
 

kP-GoYo

LANero Despistado
10 Mar 2005
2,492
como hago para ejecutar una consulta en SQL Server , lo que necesito es que devuelva solo las facturas que están en un rango de fechas, por ahora por ejemplo necesito las facturas del 1 de enero del 2020 al 28 de febrero de 2020

he intentando las siguientes instrucciones pero no se por que me arroja facturas del 2019, el campo FechaFactura es tipo date

  • where FechaFactura between '2020-01-01' and '2020-02-28'
  • where FechaFactura >= '20200101' and FechaFactura<= '20200228'
  • where FechaFactura >= '2020/01/01' and FechaFactura<= '2020/02/28'

también lo hice con cast(FechaFactura as date) y nada, ya me quede sin ideas, les agradezco su colaboración.

Cuando no me funciona de pronto por los tipos de fecha lo que hago es que le antepongo el convert al campo de fecha y al valor entre comillas:

CONVERT(date,FechaFactura,103) >= CONVERT(date,'2020-01-01',103) - PUEDE USAR TAMBIÉN EN LUGAR DEL 103 EL 120.
 
  • Me gusta
Reacciones: MædCo

MædCo

@MaEdCo
12 May 2007
8,858
Cuando no me funciona de pronto por los tipos de fecha lo que hago es que le antepongo el convert al campo de fecha y al valor entre comillas:

CONVERT(date,FechaFactura,103) >= CONVERT(date,'2020-01-01',103) - PUEDE USAR TAMBIÉN EN LUGAR DEL 103 EL 120.
con el 120 funcionó, con el 103 daba error de conversión o algo asi, pero igual me sigue mostrando facturas del 2016

1585665887231.png
 

ADIDAS

Lanero Reconocido
28 Abr 2004
2,541
Viejo Mae, pruebe primero la consulta sin relaciones (sin los Joins, usando solo la tabla que tiene el campo de fecha) a ver si le filtra bien, si si, es porque tienes un JOIN mal relacionado y eso rompe los condicionales
 
  • Me gusta
Reacciones: MædCo y kP-GoYo

Los últimos temas