Ajuda com codigo sql

12/12/2003

1

Olá caros colegas, estou com um pequeno problema com meu codigo sql é o seguinte: No meu codigo abaixo ele me lista os filiados com o numero de faltas que eu informo no periodo mas eu queria que ele me informasse o numero as pessoas que tem exemplo 30 faltas no periodo mas o total de faltas e não o numero por mês. Estou usando o codigo abaixo so que eu quero que me mostre o total e não o mes a mes.
Ex.: eu informo 01/01/03 a 15/12/03 30 faltas e ele me mostra as pessoas neste periodo que tem 30 ou mais faltas no total
IF RADIOGROUP1.ITEMINDEX=4 THEN
begin
ADOQUERY1.Close;
ADOQUERY1.SQL.Clear;

ADOQUERY1.SQL.Add(´SELECT F.CODIGO, F.MATRICULA, S.NOME, SUM(F.FALTAS) AS TOTFALTAS, COUNT(F.FALTAS) AS QUANTIDADEMESES FROM TBFALTAS F, TBSERVIDOR S ´);
ADOQUERY1.SQL.Add(´WHERE S.MATRICULA=F.MATRICULA AND F.DATA>=:ID AND F.DATA<=:ID1 AND F.FALTAS>=:ID2 GROUP BY F.CODIGO, F.MATRICULA, S.NOME ORDER BY S.NOME´);

ADOQUERY1.Parameters.ParamByName(´ID´).VALUE:=STRTODATE(EDIT2.Text);
ADOQUERY1.Parameters.ParamByName(´ID1´).VALUE:=STRTODATE(EDIT3.Text);
ADOQUERY1.Parameters.ParamByName(´ID2´).VALUE:=STRTOINT(EDIT4.Text);


ADOQUERY1.OPEN;

END;


Responder

Posts

12/12/2003

Rodrigo Costa

SELECT F.MATRICULA, S.NOME, SUM(F.FALTAS) AS TOTFALTAS
FROM TBFALTAS F, TBSERVIDOR S
WHERE S.MATRICULA=F.MATRICULA AND F.DATA>=´01/01/2003´ AND F.DATA<=´12/31/2003´
GROUP BY F.MATRICULA, S.NOME
HAVING SUM(F.FALTAS) > 1
ORDER BY S.NOME

Resultado:

MATRICULA NOME TOTFALTAS
---------- ---------- -----------
01             joao         3
02             maria       3


Responder