[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