Fórum Como fazer em apenas um SQL #178458
29/08/2003
0
O negócio é o seguinte, eu estou trabalhando com Delphi e Oracle, as rotinas que fiz foram as seguintes:
/* quantidade de dados faltantes no Mes */
SELECT COUNT(*) FROM DADOS_HORARIOS_FLUVIOMETRICOS
WHERE COD_DNAEE_DHF = ´65973501´
AND DATA_DHF >= ´20010101´
AND DATA_DHF <= ´20010131´
AND VAL_FLUV_CONV_DHF = ´7777.77´
/* quantidade de dados faltantes no dia */
SELECT COUNT(*) FROM DADOS_HORARIOS_FLUVIOMETRICOS
WHERE COD_DNAEE_DHF = ´65973501´
AND DATA_DHF >= ´20010101´
AND DATA_DHF <= ´20010101´
AND VAL_FLUV_CONV_DHF = ´7777.77´
Se existir na consulta DIA, 24 registros faltantes eu incremento 01
Faço isso para o mês inteiro, o problema é que esta muito lento...
Eu preciso saber quantos registros faltaram no Mês inteiro e preciso saber destes quantos ficaram um DIA inteiro (24 registros) sem dados (7777.77)
Tem como eu fazer isso em apenas uma SQL em vez de eu fazer um FOR no delphi, que é como esta hj????
/* quantidade de dados faltantes no Mes */
SELECT COUNT(*) FROM DADOS_HORARIOS_FLUVIOMETRICOS
WHERE COD_DNAEE_DHF = ´65973501´
AND DATA_DHF >= ´20010101´
AND DATA_DHF <= ´20010131´
AND VAL_FLUV_CONV_DHF = ´7777.77´
/* quantidade de dados faltantes no dia */
SELECT COUNT(*) FROM DADOS_HORARIOS_FLUVIOMETRICOS
WHERE COD_DNAEE_DHF = ´65973501´
AND DATA_DHF >= ´20010101´
AND DATA_DHF <= ´20010101´
AND VAL_FLUV_CONV_DHF = ´7777.77´
Se existir na consulta DIA, 24 registros faltantes eu incremento 01
Faço isso para o mês inteiro, o problema é que esta muito lento...
Eu preciso saber quantos registros faltaram no Mês inteiro e preciso saber destes quantos ficaram um DIA inteiro (24 registros) sem dados (7777.77)
Tem como eu fazer isso em apenas uma SQL em vez de eu fazer um FOR no delphi, que é como esta hj????
Marcela
Curtir tópico
+ 0
Responder
Posts
29/08/2003
Kotho
acho que mais ou menos assim
SELECT
DATA_DHF
FROM
(SELECT
DATA_DHF,
COUNT(*) HORAS
FROM
DADOS_HORARIOS_FLUVIOMETRICOS
WHERE
DATA_DHF BETWEEN ´20010101´ AND ´20010131´
GROUP BY
DATA_DHF)
WHERE
HORAS = 24
SELECT
DATA_DHF
FROM
(SELECT
DATA_DHF,
COUNT(*) HORAS
FROM
DADOS_HORARIOS_FLUVIOMETRICOS
WHERE
DATA_DHF BETWEEN ´20010101´ AND ´20010131´
GROUP BY
DATA_DHF)
WHERE
HORAS = 24
Responder
Gostei + 0
29/08/2003
Kotho
desculpe-me kra, faltaram:
COD_DNAEE_DHF = ´65973501´
VAL_FLUV_CONV_DHF = ´7777.77´
, que entram no sql mais interno.
COD_DNAEE_DHF = ´65973501´
VAL_FLUV_CONV_DHF = ´7777.77´
, que entram no sql mais interno.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)