Fórum Somar Dados #355918
25/03/2008
0
exemplo: se eu tenho uma tabela e nela tenho 20 registro se o primeiro registro 02 e o ultimo 0050 ela esta mo mostrando assim:
MINIMO = 02 E MAXIMO = 02 isso se for do mesmo cadastro ja se pegar de outros cadastros ele funciona corretamente...
sqlMaster := ´ SELECT TIPO_EXT,CAP_CARGA,MAN_NIVEL,COUNT( * ) AS QTDE, MAX(SELO) AS MAXIMO, (SELECT MIN(SELO) FROM EXTINTORES_ITENS ) AS MINIMO´; sqlMaster := sqlMaster+´ FROM EXTINTORES_ITENS ´; sqlMaster := sqlMaster+´ WHERE ´; sqlMaster := sqlMaster+´ (DATA >= :Data1 AND DATA <= :Data2) ´; sqlMaster := sqlMaster+´ GROUP BY TIPO_EXT,CAP_CARGA,MAN_NIVEL ´; DB_Extintor_Itens.Close; DB_Extintor_Itens.SQL.clear; DB_Extintor_Itens.SQL.Add( sqlMaster ); DB_Extintor_Itens.ParamByName(´Data1´).AsDateTime :=DataIni; DB_Extintor_Itens.ParamByName(´Data2´).AsDateTime :=DataFim; DB_Extintor_Itens.Open;
Tchucky
Curtir tópico
+ 0Posts
25/03/2008
Wanderok
sqlMaster := sqlMaster+´ FROM EXTINTORES_ITENS ´;
sqlMaster := sqlMaster+´ WHERE ´;
sqlMaster := sqlMaster+´ (DATA >= :Data1 AND DATA <= :Data2) ´;
sqlMaster := sqlMaster+´ GROUP BY TIPO_EXT,CAP_CARGA,MAN_NIVEL ´;
NAO PRECISA DO SELECT INTERNO....
Gostei + 0
25/03/2008
Tchucky
bom tentei aqui da forma q vc m falou
mas se eu tirar o SELECT e fazer da forma q vc m falou o sistema naum gera o relatorio naum abre nada...
Gostei + 0
26/03/2008
Wanderok
os valores MAX e MIN nao eram referentes ao grupo selecionado. Nao faziam parte da quebra.
mas sim, valores totais, independentes de grupos.
logo, abrimos em 3 selects....
1) detalhe:
SELECT TIPO_EXT,
CAP_CARGA,
MAN_NIVEL,
COUNT( * ) AS QTDE
FROM EXTINTORES_ITENS
GROUP BY TIPO_EXT,CAP_CARGA,MAN_NIVEL
2) cabecalho:
a) minimo
// recuperar o primeiro selo do periodo....
DB_FaixaDeSelos.Close;
DB_FaixaDeSelos.sql.clear;
DB_FaixaDeSelos.sql.add(´SELECT MIN(SELO) AS MINIMO ´);
DB_FaixaDeSelos.sql.add(´ FROM EXTINTORES_ITENS ´);
DB_FaixaDeSelos.sql.add(´ WHERE CODIGO = (SELECT MIN(CODIGO) FROM EXTINTOR) ´);
DB_FaixaDeSelos.sql.add(´ WHERE DATA >= :Data1 AND DATA <= :Data2) ´);
DB_FaixaDeSelos.ParamByName(´Data1´).AsDateTime :=DataIni;
DB_FaixaDeSelos.ParamByName(´Data2´).AsDateTime :=DataFim;
DB_FaixaDeSelos.Open;
QRLabel9.caption := DB_FaixaDeSelos.FieldByName(´MINIMO´).AsString;
b) maximo
// recuperar o último selo do periodo....
DB_FaixaDeSelos.Close;
DB_FaixaDeSelos.sql.clear;
DB_FaixaDeSelos.sql.add(´SELECT MAX(SELO) AS MAXIMO ´);
DB_FaixaDeSelos.sql.add(´ FROM EXTINTORES_ITENS ´);
DB_FaixaDeSelos.sql.add(´ WHERE CODIGO = (SELECT MAX(CODIGO) FROM EXTINTOR ) ´);
DB_FaixaDeSelos.sql.add(´ WHERE DATA >= :Data1 AND DATA <= :Data2) ´);
DB_FaixaDeSelos.ParamByName(´Data1´).AsDateTime :=DataIni;
DB_FaixaDeSelos.ParamByName(´Data2´).AsDateTime :=DataFim;
DB_FaixaDeSelos.Open;
QRLabel12.caption := DB_FaixaDeSelos.FieldByName(´MAXIMO´).AsString;
DB_FaixaDeSelos.Close;
:D:D:D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)