Contar chamadas de usuário em SQL

  • Autor Autor JoxMarkes
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
JoxMarkes

JoxMarkes

Gamma
No recomendado
Verificación en dos pasos activada
Usuário com poucas negociações! Use sempre o saldo do 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!
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Hola, aunque no has especificado con qué motor de BD estas trabajando hice un pequeño script en SQL SERVER.

Inserir CODE, HTML ou 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 edição:
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.
 
Voltar
Topo