выбрать количество пропусков сотрудников на каждый день - PullRequest
0 голосов
/ 24 апреля 2011

хорошо, так скажем, у меня есть три таблицы, как показано ниже:
сотрудники ( ID , имя)
сеансы ( ID , начинается_кат, заканчивается_день, день)
отсутствие ( ID , employeeID, sessionID)

Допустим, есть несколько сеансов в день.
Можно ли считать количество отсутствий сотрудников из сессий для каждого отдельного дня в таблице сессий и группировать их следующим образом:

--------------------------------
| Name |2011-01-15| 2011-01-16 | 
|      |          |            |
|john  |  2       |   0        |
|dave  |  4       |    1       |

(количество столбцов (дней) зависит от количества дней в таблице сеансов. Допустим, я хочу только те из них, которые были у последней или текущей недели
спасибо.

Ответы [ 3 ]

1 голос
/ 24 апреля 2011

Вы должны использовать оператор PIVOT. Там это идет:

SELECT Name, [2011-01-15], [2011-01-16]
FROM    
(SELECT  [Day],Name
    FROM [Absences] A left join
         [Sessions] S on A.sessionID = S.ID
    GROUP BY [Day],Name) AS SourceTable
PIVOT
(
COUNT([Day])
FOR [Day] IN ([2011-01-15], [2011-01-16])
) AS PivotTable;
0 голосов
/ 24 апреля 2011

Я думаю, что вы говорите о MySQL и хотите сделать сводную таблицу.Перейдите на сайт MySQL от ArtfulSoftware и просмотрите учебники по сводной таблице: http://www.artfulsoftware.com/infotree/queries.php

0 голосов
/ 24 апреля 2011

Посмотрите вверх Сводная таблица . В некоторых СУБД это встроено.

...