-
Conteúdo Similar
-
Por Ruyter
Estou com problema para resolver uma solução que estou necessitando. Toda ajuda será bem-vinda!
Tenho uma tabela onde há vários registros com um mesmo IDENTIFICADOR e vários INDENTIFICADORES diferentes em uma mesma coluna.
Como percorrer os registros de uma tabela, com base nos IDENTIFICADORES?
Preciso também analisar um período por data (>= e <=) e ABSTRAIR deste período o valor MIN e MAX de uma outra coluna
Esta consulta precisa ser realizada em cada IDENTIFICADOR DISTINTO?
Já utilizei o BETWEEN, mas ao usar o código com o foreach() no PHP ele lê apenas um registro.
O código que estou trabalhando é este:
SELECT conf_hidro_inatividade, cons_reg_ident_iot, cons_data, MIN(cons_leitura_atual), MAX(cons_leitura_atual), hidro_valvula, hidro_cliente FROM tab_conf_hidro, tab_consumo INNER JOIN tab_hidrometros ON cons_reg_ident_iot = hidro_ident_iot WHERE cons_reg_ident_iot = '20220701001' and conf_hidro_inatividade = 'sim' and hidro_valvula = 'aberta' and cons_data BETWEEN '2022-10-10' and '2022-10-13';
Com:
SELECT conf_hidro_inatividade, cons_reg_ident_iot, cons_data, cons_leitura_atual, hidro_valvula, hidro_cliente /*(sem o MIN e MAX na mesma coluna)*/ WHERE cons_reg_ident_iot != ' ' and conf_hidro_inatividade = 'sim' and hidro_valvula = 'aberta';
usando dentro do foreach(), percorre todos os registros.
-
Por Felipe Guedes Coutinho
Galera, venho contribuindo com diversas dúvidas, mas hoje quem está com uma dúvida sou eu.
Cenário - Gerar Dados para Relatório de Faturamento.
Objetivo - Obter os valores totais das tabelas de Compra, Venda e Despesa agrupados por mês através de SUM dentro do "periodo" passado pela tela de consulta do relatório.
Problema - Não existe um relacionamento entre as tabelas e eu preciso obter os resultados por 1 (UM) único select pois a cada registro lido com os valores totalizados e agrupados por mês eu movimento para um array onde o resultado do array é movimentado para um Chart do Google que gera um gráfico.
Insumos:
Tabela compra
RESULTADO SEPARADO DA TABELA COMPRA
SELECT sum(vlr_pago),
CASE extract(MONTH from dt_registro_compra)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Março'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
WHEN 12 THEN 'Dezembro'
END AS mes
FROM db_pescado_gelo.sqltb_compra
WHERE dt_registro_compra between '2019-01-01' and '2019-12-31'
group by mes
order by dt_registro_compra asc
RESULTADO:
Tabela Venda
RESULTADO SEPARADO DA TABELA VENDA
SELECT sum(vlr_vale),
CASE extract(MONTH from dt_registro_venda)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Março'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
WHEN 12 THEN 'Dezembro'
END AS mes
FROM db_pescado_gelo.sqltb_venda
WHERE dt_registro_venda between '2019-01-01' and '2019-12-31'
group by mes
order by dt_registro_venda asc
RESULTADO:
Tabela Despesa
Sei que devo colocar dt_pagamento is not null
RESULTADO SEPARADO DA TABELA DESPESA
SELECT sum(vlr_pago),
CASE extract(MONTH from dt_pagamento)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Março'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
WHEN 12 THEN 'Dezembro'
END AS mes
FROM db_pescado_gelo.sqltb_despesa
WHERE dt_pagamento between '2019-01-01' and '2019-12-31'
AND dt_pagamento is not null
group by mes
order by dt_pagamento asc
RESULTADO:
O resultado que eu gostaria é algo parecido com isso:
TABELA DE VENDA TABELA DE COMPRA TABELA DE DESPESA - - R$ 31.272,55 Julho - - Agosto R$ 3.796,53 R$ 20.687,20 Agosto R$ 3.796,53 Agosto
Esse resultado eu "preciso" que seja através do retorno do um único SELECT, se alguém puder me ajudar, ficarei muito agradecido.
Se puderem dar uma forã agradeço @Motta ; @Omar~ ; @Maujor ; @gabrielms
Att.
Felipe Coutinho
-
Por Luis Fernando R. Valle
Boa tarde.
Tenho um agendamento para inserir. Mas antes de inserir, preciso validar para ver se não há agendamento no intervalo selecionado
Hoje estou fazendo 2 campos para data inicial e final e 2 campos para horario inicial e final, mas não estou conseguindo.
Se puder me passar se a melhor forma e o datetime e como fazer essa consulta no banco.
Desde já agradeço.
-
Por Santos_2015
Galera,
preciso de uma ajuda aqui,
tenho campo do tipo data(Y-m-d) , dependendo de minha busca vou usa-ló com between ou não, segue sql:
... where situacao like :situacao_pagamento and data_pagamento if(:data_inicio and :data_fim = null,is null, between :data_inicio and :data_fim) tentei fazer com if
se data_incio e data_final (parâmetros passados) for null, recebe is null(para comparar com o campo data_pagamento), caso contrario iriar entrar no beween...
mas não rolou...
-
Por Gabriel Jansen
Boa tarde!
Não sei se seria o lugar correto mas queria deixar uma pequena colaboração, em meio a pesquisa na internet não achei uma forma para o asp clássico de fazer replace entre duas variáveis definida e tentei estudar um pouco sobre replace e não consegui entender ao certo, então apelei.
Em meio ao texto pode ser que precise remover algo que está entre o determinada parte do conteúdo, ex: Abacaxi <0,1111> desidratado, para Abacaxi desidratado.
Criei a função abaixo:
FUNCTION REPLACE_ENTRE(VARIAVEL,INICIO,FIM) TEXTO=VARIAVEL INICIA=split(TEXTO,INICIO) IF Ubound(INICIA)>"0" Then FINALIZA=split(INICIA(1),FIM) REPLACE_ENTRE=INICIA(0)&""&FINALIZA(1) ELSE REPLACE_ENTRE=TEXTO END IF END FUNCTION Para fazer o replace chama ela dessa forma, caso queira pode fazer a alteração dos caracteres para qualquer um que deseja (desde que haja diferença entre elas tipo: [ , ], <,>, sx, xs):
REPLACE_ENTRE("Variavel que deseja fazer replace","caractere que identifica inicio","caractere que identifica o final") Quero retirar uma parte do texto onde fica entre os caracteres "[" e "]".
Há quem o faça [mas não o aconselha] por isso não o farei.
FUNCTION REPLACE_ENTRE(VARIAVEL,INICIO,FIM) TEXTO=VARIAVEL INICIA=split(TEXTO,INICIO) IF Ubound(INICIA)>"0" Then FINALIZA=split(INICIA(1),FIM) REPLACE_ENTRE=INICIA(0)&""&FINALIZA(1) ELSE REPLACE_ENTRE=TEXTO END IF END FUNCTION TEXTO="Há quem o faça [mas não o aconselha] por isso não o farei." TEXTO=REPLACE_ENTRE(TEXTO,"[","]") Imprimindo a variável ela ficará assim:
Há quem o faça por isso não o farei. É isso ai
-