SELECT SUM() y COUNT

Es mi primer mensaje aquí, he conocido esta página y me ha sido bastante útil en mis prácticas para la universidad, pero hay un par de consultas que no consigo hacerlas funcionar y no se porque.
Las consultas son las siguientes:
e) Vigilantes que han estado asignados más de 12 días al mes de media durante el
período correspondiente al último año corriente (empezando hoy y restando 365
días).
f) Listado (nombre y apellidos) de los vigilantes asignados a un contrato determinado
junto con la suma de los días que han estado asignados en total.
Y lo siguiente no me ha funcionado:
e) SELECT DNI_Agente, COUNT('X') FROM datos_contrato
GROUP BY DNI_Agente HAVING COUNT ('X') > 12;
f) SELECT SUM(Dias_Trabajados), Fecha_Trabajo FROM datos_agentes; (Los nombres y apellidos de los vigilantes todavía no están puestos porque prefiero ir de poco en poco)
Las tablas son las siguientes:
CREATE TABLE datos_personal
(DNI VARCHAR2(8) PRIMARY KEY,
Nombre VARCHAR2(20) NOT NULL,
Apellidos VARCHAR2(20) NOT NULL,
Numero_de_cuenta_bancaria VARCHAR2(20) NOT NULL);
CREATE TABLE datos_agentes
(DNI_agentes VARCHAR2(8) NOT NULL,
CONSTRAINT fk_DNI_Agentes FOREIGN KEY (DNI_Agentes)
REFERENCES datos_personal(DNI),
dias_trabajados NUMBER(2) NOT NULL,
fecha_trabajo DATE NOT NULL);
La tabla de datos_agentes esta relacionada con datos_personal por el DNI, pero vamos eso se ve.

1 Respuesta

Respuesta
1
Para el inciso e)
* el rango de datos es sysdate-365 and sysdate
* Ligar con tabla datos_agentes
* agrupar los datos tambien por FECHA_TRABAJO, pero redondeada al mes (funcion TRUNC)
* Usa count(*) es mas legible
Para el inciso f)
* Ligar (relacionar) tambien con tabla datos_personal
* Agrupar tambien por NOMBRE, APELLIDOS
* Los dias trabajados es un COUNT

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas