[firebase-br] Dúvida com Group By e Campo Calculado
Rodrigo Gomes da Silva
rodrgomes em gmail.com
Seg Set 2 11:27:02 -03 2013
Vc precisa desta coluna replicada em cada dia? Se vc quizer só ter esta
informacao por periodo e por funcionario pode fazer um agrupamento do
select que ja tem
SELECT FUNC, DATA, count (distinct data) as QTDE DIAS
FROM APONTAMENTOS GROUP BY FUNC, DATA
Se precisar mesmo a coluna tvlz funcione com subselect, replicando o filtro
da principal:
SELECT FUNC, DATA, DATEADD(SECOND, SUM(COALESCE(DATEDIFF(SECOND, HORAINI,
HORAFIN), 0)), CAST ('00:00:00' AS TIME)) AS TEMPO,
(SELECT count (distinct data) FROM APONTAMENTOS B where b.FUNC=A.FUNC
GROUP BY FUNC, DATA) as QTDE DIAS
FROM APONTAMENTOS A GROUP BY FUNC, DATA
Em 1 de setembro de 2013 17:35, Reinaldo <diasmartins em gmail.com> escreveu:
> Olá Pesoal,
>
> Possuo uma tabela como a abaixo exemplificada.
>
> TABELA APONTAMENTOS
> +-------+----------+----------**---------+
> | FUNC | DATA | HORAINI | HORAFIM |
> +-------+----------+---------+**---------+
> | 001 | 01/08/13 | 08:30 | 08:45 |
> | 001 | 01/08/13 | 08:12 | 09:17 |
> | 001 | 01/08/13 | 10:10 | 10:59 |
> | 001 | 02/08/13 | 08:42 | 10:17 |
> | 002 | 01/08/13 | 16:47 | 17:01 |
> | 002 | 01/08/13 | 18:00 | 18:05 |
> | 001 | 02/08/13 | 12:28 | 12:38 |
> | 001 | 03/08/13 | 11:30 | 13:45 |
> | 001 | 03/08/13 | 11:40 | 14:01 |
> | 002 | 01/08/13 | 15:30 | 18:45 |
> | 002 | 02/08/13 | 19:59 | 20:22 |
> | 002 | 02/08/13 | 21:35 | 21:40 |
> | 001 | 04/08/13 | 09:27 | 10:12 |
> | 001 | 04/08/13 | 09:52 | 09:58 |
> | 001 | 04/08/13 | 13:10 | 13:20 |
> +-------+----------+----------**---------+
>
> E o tenho o seguinte select que tras os tempos trabalhados agrupados por
> data e funcionario
>
> SELECT FUNC, DATA, DATEADD(SECOND, SUM(COALESCE(DATEDIFF(SECOND, HORAINI,
> HORAFIN), 0)), CAST ('00:00:00' AS TIME)) AS TEMPO
> FROM APONTAMENTOS GROUP BY FUNC, DATA
>
> +-------+----------+--------+-**----------+
> | FUNC | DATA | TEMPO | QTDE DIAS |
> +-------+----------+--------+-**----------+
> | 001 | 01/08/13 | 02:09 | 04 |
> | 001 | 02/08/13 | 01:45 | 04 |
> | 001 | 03/08/13 | 04:36 | 04 |
> | 001 | 04/08/13 | 01:01 | 04 |
> | 002 | 01/08/13 | 03:34 | 02 |
> | 002 | 02/08/13 | 00:28 | 02 |
> +-------+----------+--------+-**----------+
>
> O problema é que preciso que na coluna QTDE DIAS venha a quantidade de
> dias que o funcionario trabalhou dentro do periodo, no caso do exemplo o
> funcionario 1 trabalhou 4 dias e o funcionario 2 trabalhou 2 dias.
>
> Alguma Sugestão de qual caminho utilizar?
>
> Obrigado
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>
Mais detalhes sobre a lista de discussão lista