Ayuda con una consulta entre dos tablas

JoxMarkes

VIP
Beta
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Ha verificado su Paypal!
¡Usuario con pocos negocios!
Desde
25 Feb 2017
Mensajes
130
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!
 

Weyne

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
13 Jun 2020
Mensajes
9
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:

harry69

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
25 Jun 2019
Mensajes
35
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
 

cholemon

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
12 Mar 2017
Mensajes
151
A simple vista puedo ver que tienes mal definida la relación de la BD.
 

Crea una cuenta o accede para comentar

Debes ser un miembro para poder comentar

Crear cuenta

Crea una cuenta en nuestra comunidad

Acceder

¿Ya tienes una cuenta? Accede aquí


Arriba