Contar llamadas de usuario en SQL

  • Autor Autor JoxMarkes
  • Fecha de inicio Fecha de inicio
JoxMarkes

JoxMarkes

No recomendado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola amigos. A ver si alguien puede ayudarme con una consulta SQL.

Tengo dos tablas. Tabla usuarios y tabla consultas.

En la tabla usuarios tengo estos campos.

id
usuario
desde
hasta

En la tabla llamadas tengo estos campos.

id
usuario
fechaultimaconsulta

Cada vez que un usuario hace una consulta se registra en la tabla llamadas.

Alguien podría ayudarme a saber el total de registros de la tabla llamadas de un usuario? Hay que comparar con el campo "desde" hasta el dia actual y saber que número de llamadas que ha tenido ese usuario en ese periodo.

Se que es una consulta básica, pero en SQL no ando muy allá y siempre me lo ha hecho un amigo que por desgracia ya no está.

Gracias a todos!
 
Hola, aunque no has especificado con qué motor de BD estas trabajando hice un pequeño script en SQL SERVER.

Insertar CODE, HTML o PHP:
CREATE TABLE USUARIOS
(
ID INT PRIMARY KEY IDENTITY(1,1),
USUARIO VARCHAR(25),
DESDE DATETIME,
HASTA DATETIME
)
GO

CREATE TABLE LLAMADAS
(
ID INT PRIMARY KEY IDENTITY(1,1),
USUARIO VARCHAR(25),
FECHAULTIMACONSULTA DATETIME
)

INSERT INTO USUARIOS (USUARIO,DESDE,HASTA) VALUES
('weyne','20201201',NULL),
('JoxMarkes','20201201',NULL)

INSERT INTO LLAMADAS (USUARIO,FECHAULTIMACONSULTA) VALUES
('weyne','20201101'),
('weyne','20201201'),
('weyne','20210101')

SELECT U.USUARIO, COUNT(1) AS [TOTAL LLAMADAS]
FROM USUARIOS U
INNER JOIN LLAMADAS L
    ON U.USUARIO = L.USUARIO
    AND U.DESDE >= L.FECHAULTIMACONSULTA
WHERE U.DESDE <= GETDATE()
GROUP BY U.USUARIO
 
Última edición:
si hubieses mostrado el esquema de las tablas y los datos, seria mas sencillo ayudarte.
si no conoces en profundidad el lenguaje, entonces debes hacerlo simple:

SELECT usuarios.usuario, count(*) as "Total llamadas" from usuarios, llamadas
WHERE
usuarios.usuario = llamadas.usuario AND
usuarios.desde >= llamadas.fechaultimaconsulta AND
usuarios.desde <= GETDATE() GROUP BY usuarios.usuario
 
A simple vista puedo ver que tienes mal definida la relación de la BD.
 
Atrás
Arriba