【发布时间】:2020-05-28 14:12:47
【问题描述】:
我有这些表,我想显示这个 SELECT 结果
Fecha Mes Dia Pendiente Responsable
---------- -------------------- -------------------- --------------- -------------
2019-03-31 Marzo Domingo NULL NULL
2019-04-01 Abril Lunes Entrevista 5 Ricardo
2019-04-02 Abril Martes Entrevista 15 Ricardo
2019-04-03 Abril Miercoles NULL NULL
2019-04-04 Abril Jueves Entrevista 41 Ricardo
这些是表格:
Calendario
fecha mes dia
---------- ----------- -----------
2019-03-31 3 7
2019-04-01 4 1
2019-04-02 4 2
2019-04-03 4 3
2019-04-04 4 4
2019-04-05 4 5
2019-04-06 4 6
2019-04-07 4 7
2019-04-08 4 1
Mes
mes nombre
----------- --------------------
3 Marzo
4 Abril
Dia
dia nombre
----------- --------------------
1 Lunes
2 Martes
3 Miercoles
4 Jueves
5 Viernes
6 Sabado
7 Domingo
Responsable
responsable nombre
----------- --------------------------------------------------
1 Ricardo
3 Alberto
Pendientes
fecha responsable pendiente
---------- ----------- ----------------
2019-04-01 1 Entrevista 5
2019-04-04 1 Entrevista 42
2019-04-08 3 Entrevista 97
2019-04-04 1 Entrevista 48
2019-04-02 1 Entrevista 15
2019-04-01 3 Entrevista 8
2019-04-04 3 Entrevista 43
2019-04-04 1 Entrevista 41
我只想要按日期排列的第一行,但我做不到,这是我的 SQL 语法:
SELECT c.fecha as Fecha, m.nombre as Mes, d.nombre as Dia, p.pendiente as Pendiente, r.nombre as Responsable
FROM pendientes p RIGHT OUTER JOIN calendario c ON p.fecha = c.fecha
LEFT OUTER JOIN responsable r ON p.responsable = r.responsable
INNER JOIN mes m ON m.mes = c.mes
INNER JOIN dia d ON d.dia = c.dia
WHERE c.fecha between '20190331' and '20190404'
当我运行它时,它会显示包含相同日期的所有值。 我也尝试了 group by 但结果相同
【问题讨论】:
标签: sql-server