Eu tenho uma tabela chamada Slot
da seguinte forma com dados padrão:
1ª Mesa
================================
| Day | Time | Venue | Free |
================================
| 1 | 0830 | RM 1 | 10 |
| 1 | 0830 | RM 2 | 10 |
| 1 | 1030 | RM 1 | 20 |
| 1 | 1030 | RM 2 | 20 |
| 2 | 0830 | RM 1 | 10 |
| 2 | 0830 | RM 2 | 10 |
| 2 | 1030 | RM 1 | 30 |
| 2 | 1030 | RM 2 | 30 |
================================
Há outra tabela Booking
com dados que podem ir e vir a qualquer momento, mas o cabeçalho da coluna é fixo:
2ª Mesa
===================================
| Day | Time | Venue | User |
===================================
| 1 | 0830 | RM 1 | Jill |
| 1 | 0830 | RM 2 | Jill |
| 1 | 0830 | RM 1 | Jack |
| 1 | 0830 | RM 1 | Mary |
| 1 | 0830 | RM 2 | Mary |
| 1 | 0830 | RM 2 | Jill |
| 2 | 1030 | RM 1 | Ken |
| 2 | 1030 | RM 1 | Ken |
====================================
Com base nos dados de exemplo na tabela Booking
, como posso derivar a tabela a seguir?
3ª Mesa (Era isso que eu queria)
=======================================
| Day | Time | Venue | Free | Used |
=======================================
| 1 | 0830 | RM 1 | 10 | 3 |
| 1 | 0830 | RM 2 | 10 | 3 |
| 1 | 1030 | RM 1 | 20 | 0 |
| 1 | 1030 | RM 2 | 20 | 0 |
| 2 | 0830 | RM 1 | 10 | 0 |
| 2 | 0830 | RM 2 | 10 | 0 |
| 2 | 1030 | RM 1 | 30 | 2 |
| 2 | 1030 | RM 2 | 30 | 0 |
=======================================
Eu sou capaz de recuperar a seguinte tabela
4ª Mesa
================================
| Day | Time | Venue | Used |
================================
| 1 | 0830 | RM 1 | 3 |
| 1 | 0830 | RM 2 | 3 |
| 2 | 1030 | RM 1 | 2 |
================================
usando o seguinte comando
select
day, time, venue, COUNT(*) as Used
from
booking
group by
day, time, venue
order by
day asc, time asc, time asc
mas acho difícil mesclar e obter a 3ª mesa que eu queria.
Criação de tabela e script de dados de amostra:
Consulta:
Resultado: