Pesquisar na Comunidade
Mostrando resultados para as tags ''SELECT''.
Encontrado 51 registros
-
Eu preciso exibir duas informações em minha consulta: 1) A quantidade de pessoas inscritas numa turma de treinamento (isso é feito com um simples COUNT) 2) Uma flag de excesso de inscrições na turma. Seria obtido pela comparação entre a quantidade máxima permitida (já existe esse campo) e o COUNT feito acima. Até aqui sem problemas. O que quero é evitar fazer duas contagens (1 para saber a quantidade de inscritos, e outra para gerar a flag de excesso de inscrições). Há uma forma de utilizar UMA contagem para atender as duas necessidades? Meu código está assim: ... --AQUI FAZ A COMPARAÇÃO PARA GERAR A FLAG DE EXCESSO DE INSCRIÇÕES , CASE WHEN (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) > T.lotacaoMax Then T.nome + ' '+'<span class=%22icon-aviso fcolor-critico%22 style=%22font-size:18px%22 title=Excesso de inscrições></span>' --AQUI FAZ A CONTAGEM DE INSCRIÇÕES , (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) AS 'Inscrições'
-
Possuo uma coluna de data. Eu gostaria que os registros com datas futuras aparecessem no topo do meu select, em relação aos demais registros. Em seguida, gostaria que somente esses registros com datas futuras ficassem em ordem crescente. Algo como João | 16/11/2023 Maria | 17/11/2023 José | 20/11/2023 ----------------------------- (demais registros da base) Antônio | 20/05/2023 Rosa | 15/08/2023 Cida | 15/10/2022 Pedro | 20/05/2021 Paulo | 14/11/2020 O select seria esse. select dbo.formataData(ET.dataInicial) AS 'data' FROM dbo.tab AS ET GROUP BY ET.dataInicial
-
Existe uma forma de fazer um IF na select e comparar com Array de dados? algo como Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras... Precisava saber se existe uma função assim em MySQL
-
Existe uma forma de fazer um IF na select e comparar com Array de dados? algo como Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras... Precisava saber se existe uma função assim em MySQL
-
Boa tarde pessoal, sou novo aqui e não sei se o conteúdo que estou postando está no lugar correto. Estou com uma dúvida no ajax de uma requisição onde o retorno do banco popula o meu select, mas o problema é que meu select devido possuir muitos dados ( em torno de 3000 options) quando retorna o navegador da uma leve travada mas no navegado do celular(com android 9) e trava ao ponto de ter que fechar aplicação. Acredito que teria que fazer um option que carregue por demanda algo assim, mas não sei se o meu pensamento está correto, e se estiver não sei como fazer... se alguém conseguir me ajudar agradeço. segue abaixo códigos: onde é populado o select <div class="col-md-2"> <select class="btao1" id="resultados"></select> <input id="btao1" type="submit" value="Conferir" /> </div> requisicao ajax <script> $(document).ready(function() { select_resultados() }); function select_resultados() { $.ajax({ url: 'select_resultados.php', method: 'GET', success: function(dados) { $('#resultados').html(dados); } }); } </script> pagina php que busca no banco $query_select = "SELECT * FROM resultados ORDER BY id DESC"; $result_select = $connect->prepare($query_select); $result_select->execute(); while($resultado_select = $result_select->fetch(PDO::FETCH_ASSOC)){ extract($resultado_select); echo ' <option value='.$id.'>'.$name.'</option>'; }
-
[RESOLVIDO] Problemas com pesquisa por período no Oracle e php7.3
asacap1000 postou um tópico no fórum Oracle
Olá galera estou quebrando a cabeça aqui e não sei mais o que fazer. Estamos migrando nossa intranet que estava desatualizada demais e estamos colocando toda ela em php7.3. Dentro desse sistema temos varias consultas que são realizadas no Oracle. As consultas estão ocorrendo 100% mas ao chegar na plataforma de relatórios travou tudo. Não consegui acertar o meio de consultar por período, já utilizei "to_date, to_char, trunc" e nada. Interessante que no PLSQL o to_date funciona certo SELECT DISTINCT TO_DATE(IO.TIME_ARRIVAL) FROM IN_OUT IO WHERE TO_DATE(IO.TIME_ARRIVAL) BETWEEN '01/11/2021' AND '23/11/2021' 1 04/11/2021 2 18/11/2021 3 17/11/2021 4 14/11/2021 5 22/11/2021 6 08/11/2021 7 11/11/2021 8 13/11/2021 9 09/11/2021 10 10/11/2021 11 05/11/2021 12 19/11/2021 13 15/11/2021 14 03/11/2021 15 06/11/2021 16 23/11/2021 17 01/11/2021 18 02/11/2021 19 16/11/2021 20 20/11/2021 21 12/11/2021 22 21/11/2021 Se eu utilizar ele ignora a data que estabeleci para a consulta TO_CHAR(IO.TIME_ARRIVAL,'DD/MM/YYYY') BETWEEN '01/11/2021' AND '23/11/2021' 1 03/07/2013 2 05/07/2013 3 18/06/2013 4 21/05/2013 5 20/05/2013 6 12/08/2013 7 21/08/2013 8 23/08/2013 9 02/09/2013 10 12/09/2013 Isso no PLSQL, no caso do PHP o to_date não funciona nem gera o relatório, e no to_char funciona mas ignorando as datas apontadas. O que dá pra fazer pra resolver isso, tenho que finalizar essa migração até final de Dezembro e estou começando a ficar preocupado com o tempo Agradeço qualquer ajuda que vier -
[RESOLVIDO] Ajax - Problema ao enviar requisição por jquery
manolegal postou um tópico no fórum Javascript
Boa tarde Tenho 5 campos do tipo select no meu formulário. A seguir um dos campos. <div id="resp" class="form-group col-md-3" placeholder="Responsável" title="Pesquisar por Responsável"> <select class="form-control" id="resp" name="resp" placeholder="Responsável" title="Pesquisar por Responsável"> <option value="">Responsável</option> <?php $Sql = "SELECT ..."; $Resultado = ... while ($linha = @pg_fetch_array($Resultado)){. $id_responsavel_bd = $linha["id_responsavel"]; $nome_responsavel_bd = $linha["responsavel"]; if ($resp == $id_responsavel_bd){ echo "<option value='$id_responsavel_bd' selected = 'selected'>$nome_responsavel_bd</option>";} else{ echo "<option value='$id_responsavel_bd'>$nome_responsavel_bd</option>";} } ?> </select> </div> Tenho uma função jquery que ao selecionar qualquer um destes campos, faz uma requisição ajax para atualizar uma div do meu form. <script type="text/javascript"> $(document).ready(function(){ $('select').change(function(){ // Todos selects $('form').submit(function(){ var dados = $(this).serialize(); $.ajax({ type: "POST", url: 'arquivo_ajax.php', dataType: 'html', data: dados, }).done(function(data){ //console.log(data); $("#list").empty().html(data); }); return false; }); $("#meu_form").trigger('submit'); }); }); </script> Ao abrir o formulário e fazer a primeira seleção de algum campo do tipo select, é gerada uma solicitação ajax. O problema é que a cada nova seleção deste campo e de algum outro campo, ao invés de realizar UMA ÚNICA REQUISIÇÃO, está aumentando o número de requisições a cada nova ação. Como não tenho muitos conhecimentos em jquery/ajax em minha dúvida: - É normal ir aumentando o número de requisições? - Deveria sempre realizar apenas uma requisição (imagino que seja correto)? - Meu código está correto? Se não está, onde estou errando? Desde já agradeço pela colaboração. -
select A.CODPROD,A.DESCRICAO,A.DTMOVLOG DATA,A.NUMNOTA,ROUND(A.QT,2)QTDE,A.PUNIT,A.NOMECODOPER OPERACAO,ROUND(A.P_TOTAL,2)P_TOTAL, (SELECT QTEST - PCEST.QTRESERV QTEST FROM PCEST WHERE CODFILIAL = 1 AND CODPROD = A.CODPROD)QTESTOQUE FROM( SELECT PCMOV.CODPROD,PCMOV.DESCRICAO, TRUNC(PCMOV.DTMOV) DTMOV, PCMOV.DTMOVLOG, PCMOV.NUMNOTA, PCMOV.NUMSEQ, PCMOV.NUMSEQPED, PCMOV.NUMTRANSENT, PCMOV.DTCANCEL, DECODE(DTCANCEL,NULL,'','Cancelado') SITUACAO, PCMOV.CODUSUR, PCMOV.NUMTRANSVENDA, PCMOV.NUMCAR, PCMOV.NUMLOTE, PCMOV.CODFISCAL, NVL(PCMOV.CUSTOREAL,0) CUSTOREAL, NVL(PCMOV.CUSTOFIN,0) CUSTOFIN, (CASE WHEN (SUBSTR(PCMOV.CODOPER,1,1) = 'E') THEN NVL(PCMOV.CUSTOFIN,0) ELSE NVL(PCMOV.CUSTOFINEST,0) END) CUSTOFINEST, NVL(PCMOV.CUSTOULTENT,0) CUSTOULTENT, NVL(PCMOV.CUSTOFORNEC,0) CUSTOFORNEC, NVL(PCMOV.CUSTOCONT,0) CUSTOCONT, DECODE(PCMOV.CODOPER, 'E',PCMOV.CODFORNEC, 'EB',PCMOV.CODFORNEC, 'ET',PCMOV.CODFORNEC, 'ER',PCMOV.CODFORNEC, 'ES',PCMOV.CODFORNEC, PCMOV.CODCLI) CODCLI, NVL(PCMOV.CODFUNCLANC,0) AS CODFUNCLANC, DECODE(SUBSTR(PCMOV.CODOPER, 1, 1), 'S',(PCMOV.QT * (-1)), 'R',(PCMOV.QT * (-1)), DECODE(NVL(PCMOVCOMPLE.QTRETORNOTV13, 0), 0, NVL(PCMOV.QT, 0), PCMOVCOMPLE.QTRETORNOTV13)) AS QT, NVL(PCMOV.PUNIT,0) PUNIT, PCMOV.CODOPER, DECODE(PCMOV.CODOPER, 'E', DECODE(GREATEST(PCMOV.QT,0),0,'Entrada Cancelada','Entrada Merc.'), 'EB',DECODE(GREATEST(PCMOV.QT,0),0,'Bonif. Cancelada','Entrada Bonific.'), 'ET',DECODE(GREATEST(PCMOV.QT,0),0,'Entrada Transf. Cancelada','Entrada Transf.'), 'EA',DECODE(GREATEST(PCMOV.QT,0),0,'Entrada Ajuste Cancelada','Ajuste Estoque'), 'E1',DECODE(GREATEST(PCMOV.QT,0),0,'Entrada Avaria Cancelada','Entrada Avaria'), 'EI',DECODE(GREATEST(PCMOV.QT,0),0,'Ajuste Invent. Cancelado','Ajuste Invent.'), 'ED',DECODE(GREATEST(PCMOV.QT,0),0,'Devolução Cancelada','Dev. Cliente'), 'EN',DECODE(GREATEST(PCMOV.QT,0),0,'Dev. Venda Consig. Cancelada','Dev. Venda Consignada'), 'ER',DECODE(GREATEST(PCMOV.QT,0),0,'Simples Remessa Cancelada','Simples Remessa'), 'ES',DECODE(GREATEST(PCMOV.QT,0),0,'Sobra Mercadoria Cancelamento','Sobra de Mercadoria'), 'EM',DECODE(GREATEST(PCMOV.QT,0),0,'Ent. Mat. Consumo Cancelada','Entrada Materiais de Consumo'), 'EC',DECODE(GREATEST(PCMOV.QT,0),0,'Ent. Consig. Cancelada','Entrada Consignação'), 'EO',DECODE(GREATEST(PCMOV.QT,0),0,'Dev. Comodato Cancelada','Devolução de Comodato'), 'EX',DECODE(GREATEST(PCMOV.QT,0),0,'Dev. Avulsa Cancelada','Devolução Avulsa'), 'EG',DECODE(GREATEST(PCMOV.QT,0),0,'Entrada Benefic. Cancelada','Entrada de Beneficiamento'), 'S', DECODE(GREATEST(PCMOV.QT,0),0,'NF Cancelada','Saida'), 'SD',DECODE(GREATEST(PCMOV.QT,0),0,'Dev. Cancelada','Dev. Fornecedor'), 'SB',DECODE(GREATEST(PCMOV.QT,0),0,'Saida Bonific. Cancelada','Saida Bonific.'), 'ST',DECODE(GREATEST(PCMOV.QT,0),0,'Saida Transf. Cancelada','Saida Transf.'), 'S1',DECODE(GREATEST(PCMOV.QT,0),0,'Avaria Reaprov. Cancelada','Avaria por Reaproveitamento'), 'SS',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Sobra Cancelada','Saída de Sobra'), 'SA',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Ajuste Cancelada','Ajuste Estoque'), 'SI',DECODE(GREATEST(PCMOV.QT,0),0,'Ajuste Invent. Cancelado','Ajuste Invent.'), 'SR',DECODE(GREATEST(PCMOV.QT,0),0,'Simples Remessa Cancelada','Simples Remessa'), 'SC',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Consig. Cancelada','Saída Consignação'), 'SO',DECODE(GREATEST(PCMOV.QT,0),0,'Remessa Comodato Cancelada','Remessa de Comodato'), 'SF',DECODE(GREATEST(PCMOV.QT,0),0,'Dev. Comodato Fornec. Cancelada','Devolução de Comodato a Fornecedor'), 'RA',DECODE(GREATEST(PCMOV.QT,0),0,'Req. Avulsa Cancelada','Requisição Avulsa'), 'EP',DECODE(GREATEST(PCMOV.QT,0),0,'Cancelamento Produção','Entrada Produção'), 'SP',DECODE(GREATEST(PCMOV.QT,0),0,'Cancelamento Produção','Requisição Mat.Prima'), 'SV',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Avaria Cancelada','Saída por Avaria'), 'SM',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Mat. Consumo Cancelada','Saída Materiais de Consumo'), 'SL',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Perda Cancelada','Saída de Perda'), 'EL',DECODE(GREATEST(PCMOV.QT,0),0,'Ent. Perda Cancelada','Entrada de Perda'), 'EF',DECODE(GREATEST(PCMOV.QT,0),0,'Entrada Comodato Cancelada','Entrada de Comodato'), 'SN',DECODE(GREATEST(PCMOV.QT,0),0,'Saída Benefic. Cancelada','Saída de Beneficiamento'), 'EV',DECODE(GREATEST(PCMOV.QT,0),0,'Ent. Dev. Rem. Benefic. Cancelada','Entrada Devolução de Remessa para Beneficiamento'), 'EG',DECODE(GREATEST(PCMOV.QT,0),0,'Ent. Benefic. Cancelada','Entrada de Beneficiamento'), 'Desconhecido') NOMECODOPER, (NVL(PCMOV.PUNIT,0)*DECODE(NVL(PCMOVCOMPLE.QTRETORNOTV13, 0), 0, NVL(PCMOV.QT, 0), PCMOVCOMPLE.QTRETORNOTV13)) P_TOTAL, (CASE WHEN PCMOV.CODOPER IN ('SA', 'EA') THEN (SELECT DISTINCT HISTORICO FROM PCLANC WHERE NUMTRANSENT = PCMOV.NUMTRANSENT AND ROWNUM = 1) ELSE ' ' END) MOTIVO FROM PCMOV, PCPRODUT, PCMOVCOMPLE WHERE PCMOV.CODPROD IN(SELECT CODPROD FROM PCPRODUT WHERE CODSEC IN(10020)) AND PCMOV.CODPROD = PCPRODUT.CODPROD AND PCMOV.NUMTRANSITEM = PCMOVCOMPLE.NUMTRANSITEM(+) AND NVL(PCMOVCOMPLE.MOVEST, 'S') = 'S' AND PCMOV.DTMOV BETWEEN '01-JAN-2020' AND '29-SEP-2021' AND NVL(PCMOV.CODFILIALNF, PCMOV.CODFILIAL) = '1' AND PCMOV.CODOPER <> 'S' AND ((NVL(PCPRODUT.ESTOQUEPORLOTE, 'N') = 'S' AND PCMOV.NUMLOTE IS NOT NULL) OR (NVL(PCPRODUT.ESTOQUEPORLOTE, 'N') = 'N' AND PCMOV.NUMLOTE IS NULL)) AND PCMOV.STATUS IN ('B','AB') AND NOT EXISTS (SELECT DISTINCT (PCNFSAID.NUMTRANSVENDA) FROM PCNFSAID, PCPRODUT WHERE PCNFSAID.NUMTRANSVENDA = PCMOV.NUMTRANSVENDA AND PCNFSAID.CODFILIAL = PCMOV.CODFILIAL AND PCMOV.CODOPER = 'S' AND PCNFSAID.CONDVENDA IN (4, 7, 14) AND PCMOV.CODPROD = PCPRODUT.CODPROD AND PCPRODUT.TIPOMERC = 'CB') AND NOT (FERRAMENTAS.F_BUSCARPARAMETRO_ALFA('DEVOLVESIMPLESREMTV13TOTAL',PCMOV.CODFILIAL,'N') = 'S' AND PCMOV.ROTINACAD LIKE '%1332%' AND NVL(PCMOVCOMPLE.QTRETORNOTV13,0) = 0) AND NOT EXISTS (SELECT NUMNOTA FROM PCNFSAID WHERE NUMTRANSVENDA = PCMOV.NUMTRANSVENDA AND SITUACAONFE IN (110,205,301,302,303)) ORDER BY PCMOV.CODOPER, PCMOV.DTMOV, PCMOV.NUMNOTA )A WHERE A.DTCANCEL IS NULL AND A.CODOPER = 'E' ORDER BY CODPROd,DATA Boa tarde. Estou com essa dúvida: Preciso em um select trazer os dados com a seguinte condição: Quando o valor do punit repetir, somente traz o ultimo registro. ou seja a maior data. caso contrário, traz todos os registros. é possíveç, mais não sei como. Tentei usar o ROW_NUMBER(). Mas não encontrei uma forma de usar. Greato
-
[Resolvido] Consulta em 2 colunas sem retornar dados repetidos
Giovanird postou um tópico no fórum PHP
Estou quebrando a cabeça para fazer uma consulta em 2 colunas da mesma tabela. Preciso retornar a NOTA1 e NOTA2 consultando ambas colunas e listar sem repetir as notas vinculadas com cada série. TABELA ALUNOS COD | CODSERIE | DATACADASTRO | NOTA1 | NOTA2 1 | 2 | 01/08/2021 | 5 | 3 2 | 1 | 11/08/2021 | 3 | 5 3 | 2 | 12/08/2021 | 5 | 3 4 | 3 | 15/08/2021 | 3 | 1 5 | 2 | 15/08/2021 | 5 | 3 6 | 3 | 18/08/2021 | 4 | 5 7 | 2 | 22/08/2021 | 2 | 3 8 | 1 | 12/08/2021 | 1 | 3 9 | 2 | 25/08/2021 | 5 | 6 RETORNAR: SERIE 1 Nota: 3 Nota: 5 Nota: 1 SERIE 2 Nota: 5 Nota: 3 Nota: 2 Nota: 6 SERIE 3 Nota: 3 Nota: 1 Nota: 4 Nota: 5 Aqui tenho um foreach de outra tabela que devolve o codigo das séries e as notas para consulta foreach($rsserie as list($varserie,$varnota1,$varnota2)){ SELECT nota1, nota2 FROM alunos WHERE codserie like '$varserie' and (nota1 = '$varnota1' or nota1 = '$varnota2' or nota2 = '$varnota1' or nota2 = '$varnota2') Group by nota1, nota2 } -
[Resolvido] Excluir um registro do filtro do select
Kefatif postou uma questão Perguntas e respostas rápidas
Prezados, boa tarde. Utilizo um banco de dados Mysql + Programação PHP e HTML. Preciso que no filtro do sql ele não me traga o estoque do CNES "0000000", como eu poderia ta excluindo ele do filtro? $sqlestoque = "select A.ID_ESTOQUE, D.CNES, D.NOME_UNIDADE, B.COBERTURA, A.QTD, C.DATA_REGISTRO FROM lesao_rel_estoque_coberturas A INNER JOIN lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA INNER JOIN lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE INNER JOIN unidades D ON C.CNES = D.CNES WHERE C.ID_ESTOQUE = (SELECT MAX(E.ID_ESTOQUE) FROM lesao_estoque E WHERE E.CNES = C.CNES) ORDER BY A.ID_ESTOQUE DESC"; Agradeço a ajuda desde já. Muito obrigado! -
Bom dia, galera! Tudo bem com vcs? Tenho uma tabela Itens com os campos Descrição e nome do produto, quando eu coloco no select. Eu gostaria que me retorna-se, todos os nomes dos produtos e retornar apenas uma vez a Descrição. Select com ORDER BY "SELECT DISTINCT c.id, c.descricao, i.id_categoria, i.descricao_produto, i.id_item, i.nome_produto, i.imagem, i.preco, i.qntdade FROM tab_categoria AS c JOIN tab_itens AS i ON c.id = i.id_categoria WHERE c.id = i.id_categoria AND i.id_empresa = '$id_empresa' ORDER BY c.descricao" Select com GROUP BY, até da certo, mas retorna apenas um produto. "SELECT DISTINCT c.id, c.descricao, i.id_categoria, i.descricao_produto, i.id_item, i.nome_produto, i.imagem, i.preco, i.qntdade FROM tab_categoria AS c JOIN tab_itens AS i ON c.id = i.id_categoria WHERE c.id = i.id_categoria AND i.id_empresa = '$id_empresa' GROUP BY c.descricao" Veja como esta ficando do jeito que eu estou fazendo, com ORDER BY Select_com_ORDER_BY E com o GROUP BY Select_com_GROUP_BY
-
[Resolvido] Duvidas com Select de 2 tabelas diferentes
marco tulio sousa postou um tópico no fórum Oracle
Boa tarde, FIz a declaração abaixo e tinha expectativa que o relatório retornado tivesse datas de inicio e termino de afastamento e ferias. Afastamentos estão em 1 tabela e férias em outra. Erro ORA-000936 Que devo fazer? SELECT SUBSTR(RHCGED_ALT_SIT_FUN.CODIGO, -6) Matric, RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL, CASE WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1216' THEN 'ATESTADO' WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1211' THEN 'INSS' WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1220' THEN 'INSS' WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1218' THEN 'MATERNID' WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1118' THEN 'MATERNIDADE' WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1318' THEN 'PATERNIDADE' WHEN RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL = '1210' THEN 'LIC REMUN' END TIPO_AFAST, TO_DATE(RHCGED_ALT_SIT_FUN.DATA_INIC_SITUACAO) DT_INIC_AFAST, TO_DATE(RHCGED_ALT_SIT_FUN.DATA_FIM_SITUACAO) DT_FIM_AFAST, TO_DATE(RHFERI_FERIAS.DT_INI_GOZO) DT_INIC_FERIAS, TO_DATE(RHFERI_FERIAS.DT_FIM_GOZO) DT_FIM_FERIAS FROM CRHH.RHCGED_ALT_SIT_FUN INNER JOIN CRHH.RHFERI_FERIAS ON RHCGED_ALT_SIT_FUN.CODIGO = RHFERI_FERIAS.CODIGO_CONTRATO WHERE RHCGED_ALT_SIT_FUN.COD_SIT_FUNCIONAL In ('1216','1211','1220','1218','1118','1318','1210') AND CRHH.RHCGED_ALT_SIT_FUN.CODIGO >=lpad(:texto_1,15,'0') AND RHCGED_ALT_SIT_FUN.CODIGO <=lpad(:texto_2,15,'0') ORDER BY RHCGED_ALT_SIT_FUN.DATA_INIC_SITUACAO DESC -
Quando faço a consulta no phpMyadmim consigo o resultado esperado. Mas pelo visto não estou sabendo fazer direito em PHP. O que estou errando? Porque não consigo fazer a média (prtm) "aparecer"? abaixo meu código. <?php if (isset($_GET['$id_aluno'])){ $id_aluno = addslashes($_GET['$id_aluno']);} elseif (isset($_GET['id_aluno'])){ $id_aluno = addslashes($_GET['id_aluno']);}//addslashes evita sqlinjection else{ $id_aluno=(""); } $informacao=$con->prepare("SELECT a.id_aluno, a.nome, SUM(((b.prt*5)+(m.prt*3)+(v.prt*2))/10 ) as prtm FROM aluno a inner join avb1 b on a.id_aluno = b.id_aluno inner join avm2 m on a.id_aluno = m.id_aluno inner join avp v on a.id_aluno = v.id_aluno group by a.id_aluno, a.nome WHERE a.id_aluno = $id_usuario"); $informacao->execute(); ?> <!------------> <table class="cBolt"> <tr> <td>Avaliação</td> <td>Bim.</td> <td>Português</td> </tr> <?php while($linha=$informacao->fetch(PDO::FETCH_ASSOC)){ ?> <tr> <td>Média</td> <td>1º</td> <td><?php echo $linha['prtm'];?></td> </tr> <?php } ?> </table>
-
where para selecionar um projeto com base em outros dois registros.
osmarindy postou um tópico no fórum MySQL
Boa noite Pessoal. Estou com o seguinte problema. Tenho duas tabelas principais "tblProjeto" e "tblItensProjeto", tenho que selecionar o projeto (tblProjeto) cujo o item 19 (tblItensProjeto) já esteja concluído (status 5) e que o item 15 (tblItensProjeto) não esteja concluído (status 5) e nem cancelado (status 4). Tenho o seguinte código: SELECT p.nmProjeto, l.nmLocalidade, f.usuario, r.nmRequisitante, p.dtSolicitacao,p.dtPrevisaoEntrega, s.nmStatus FROM tblProjeto as p inner join tblItensProjeto as i on i.idProjeto = p.idProjeto inner join tblLocalidade as l on l.idLocalidade = p.idLocalidade inner join tblFuncionario as f on f.idFuncionario = p.idFuncionario inner join tblRequisitante as r on r.idRequisitante = p.idRequisitante inner join tblStatusProj as s on s.idStatus = i.idStatus where (i.idAtividade = 19 and i.idStatus= 5 ) and (i.idAtividade = 15 and (i.idStatus <> 5 and i.idStatus <> 4)) Se executo um filtro de cada vez (where i.idAtividade = 19 and i.idStatus= 5 ) ou (i.idAtividade = 15 and (i.idStatus <> 5 and i.idStatus <> 4)) eles trazem resultados, mas quando deixo os dois filtros não funciona. Possuo 5 projetos que estão com a atividade 19 concluída e atividade 15 pendente. mas, não consigo com esse select trazer a informação. Alguém sabe como posso resolver? -
JS - criar rotina que só avança após certa condição ser satisfeita pelo usuário
joagostini postou um tópico no fórum Javascript
Olá, sou iniciante, e estou fazendo, como exercício, o jogo da velha. 'Desenvolvi' uma rotina de escolha de nível do jogo (serão 3 níveis) que deve aguardar a escolha do usuário para o programa prosseguir. Mas acho que não entendi direito como o javascript funciona, pois o que fiz não funciona e não encontrei uma solução (talvez não saíba como pesquisar corretamente o assunto na web). O começo do HTML (que é pouco) onde está um select para escolha do nível é este: <body> <div id="dvmenu"> <button onclick="iniciar()">Iniciar Jogo</button> <p><br></p> <div id="dvQuemComeca"> <label for="nivel">Escolha o nivel:</label> <select id="nivel" onChange='atualiza()'> <option value=0 selected>Escolha um nível</option> <option value=1>Nível 1 - Brincadeira</option> <option value=2>Nivel 2 - Surpresa</option> <option value=3>Nível 3 - Desafio</option> </select> </div> <div id="jogador" class="jogador"></div> <div id="vencedor" class="jogador"></div> </div> O código JS é este: //INÍCIO VEM DE LOAD function iniciar() { casela = document.querySelectorAll('div[id^="p"]'); for (let cas of casela) { cas.innerHTML = ''; } for (let i = 0; i < 9; i++){ tab = tab; } console.log(tab); nivel = 0; msg = ''; qtosLancesJog = 0; sorteiaJogador(); //até aqui funcionou direito } //-------------------------------------------------------------------- //ESCOLHA DO NÍVEL DO JOGO function atualiza(){ let selecao = document.querySelector('#nivel'); let opcao = selecao.options[selecao.selectedIndex]; return opcao.value; } //-------------------------------------------------------------------- //SORTEIA QUEM VAI COMEÇAR JOGANDO //função para definir o jogador que inicia o tab function sorteiaJogador() {//funcionou direito let quemComeca = parseInt(Math.floor(Math.random() * 2)); if (quemComeca == 0) { msg = 'Computador'; //setTimeout(lanceCpu, 2000);//dá um intervalo antes do computador realizar o 1 lance lanceCpu(); } else msg = 'Humano';//neste caso a rotina espera que o jogador clique no tabuleiro, qdo roda a função lancetab(pos) lanceHumano(); document.querySelector('#jogador').innerHTML = `<br>O ${msg} começa!`; } //-------------------------------------------------------------------- //ESCOLHA RANDÔMICA, NIVEL = 1, Da POSIÇÃO DO LANCE DA CPU NO tabULEIRO function jogouCpu(){//funcionou direito //nível 1 modo randômico pos = Math.floor(Math.random() * 9); return pos; } //função humana function lanceHumano(){ console.log('Estou na função humana'); do { nivel = atualiza(); console.log(nivel); } while (nivel === 0); console.log(nivel + ' passei direto'); } O problema está nesse do...while da function lanceHumano(). Segundo entendi, ele prosseguiria apenas quando nivel!== 0, caso contrário, ficaria 'preso' até o momento que o usuário escolhesse uma das opções. Pelo HTML percebesse que setei o select para value=0. Mas ele nem se dá ao trabalho de esperar um miléssimo de segundo, segue em frente com o valor que tiver, no caso 0. O while não tem efeito. Essa minha perspectiva está errada? Se sim, o que fazer? (paradigma funcional, await?) Obrigado. P.S.. No código tem uns conole.logs que servem watch-dogs para ajudar a entender por onde vão as rotinas. -
Boa tarde pessoal. Estou travado em uma parte do select do qual preciso somar os valores de todos os registros da coluna, e usa-lo como base de calculo para outra coluna SELECT PRODUTO, HORAS, QTDE, VARIACAO FROM DUAL Meu select está retornando algo assim: PRODUTO | HORAS | QTDE | VARIACAO A | 2 | 20 | 5 B | 6 | 25 | 3 C | 5 | 70 | 9 D | 8 | 30 | 2 -------------------------------------------------------- Total | 21 | 145 | Preciso criar uma nova coluna com a formula (Total Qtde / Total horas) * variação ficando assim: PRODUTO | HORAS | QTDE | VARIACAO | CONTA A | 2 | 20 | 5 | 34.52 B | 6 | 25 | 3 | 20.71 C | 5 | 70 | 9 | 62.14 D | 8 | 30 | 2 | 13.80 A forma que estou tentando fazer é via subselect, mas ele não agrupa todas as linhas, e somente o registro da linha atual. SELECT PRODUTO, HORAS, QTDE, VARIACAO, (SELECT (SUM(QTDE) / SUM(HORAS)) * VARIACAO) AS CONTA FROM DUAL Dessa forma me retorna o seguinte resultado, como se estive calculando somente a linha atual e não toda a coluna. PRODUTO | HORAS | QTDE | VARIACAO | CONTA A | 2 | 20 | 5 | 50 B | 6 | 25 | 3 | 12.5 C | 5 | 70 | 9 | 126 D | 8 | 30 | 2 | 7.5 Espero que eu tenha conseguido explicar minha necessidade de forma que de para entender.
- 4 respostas
-
Prezados, boa tarde. Estou com uma dúvida: Estou precisando trazer dados do banco para uma tela de edição de cadastro, até aí tudo bem consegui fazer para os input através do código abaixo: <label style="width:16%;margin-left: 2%;">Data de Início<br> <input type="date" value="<?php echo $row["DATA_DISPENSACAO"] ?>" class="form-control" style="width:100%;"> </label> Mas o meu select já traz o controle de peso do banco, eu gostaria que além dele trazer esses pesos que traga o salvo no cadastro de uma pessoa para visualização e edição. Segue abaixo o código do select como está: <label style="width:15%">Peso<b style="color:red">*</b><br> <select name="peso" class="form-control" required style="width:100%" value="<?php echo $row["DATA_TESTE"] ?>"> <option value="">Selecione</option> <?php $sqlpeso = "select distinct PESO from TESTE where ID_ESQUEMA = ".$row["ID_ESQUEMA"]; $resultpeso = mysqli_query($con, $sqlpeso); while ($rowpeso= mysqli_fetch_array($resultpeso)){ ?> <option value="<?php echo utf8_encode($rowpeso["PESO"]);?>" ><?php echo utf8_encode($rowpeso["PESO"]); ?></option> <?php } ?> </select> </label> Meu banco é MYSQL. Agradeço desde já a todos pela ajuda. Abraço!
-
Prezados, boa tarde. Preciso de uma ajuda, tenho um select onde o usuário vai poder selecionar dentre os valores "1" e "2", mas gostaria que quando ele selecionasse o valor 2 fosse enviado um alerta de confirmação, estou tentando fazer através do evento blur, mas não estou sabendo fazer a comparação. Seria possível chamar o evento apenas se o valor selecionado for 2? Segue meu código teste abaixo. <!DOCTYPE html> <html> <head> <title>Teste</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> <script type="text/javascript"> $(function(){ //inserir os códigos aqui $("#fase").blur(function(){ alert("O input perdeu o foco."); }); }); </script> </head> <body> <label style="width:15%">Fase<b style="color:red">*</b><br> <select name="fase" id="fase" class="form-control" required style="width:100%" > <option value="1">1</option> <option value="2">2</option> </select> </label> <label style="width:15%">teste<b style="color:red">*</b><br> <select name="teste" class="form-control" required style="width:100%" > <option value="">Selecione</option> <option value="SIM">SIM</option> <option value="NÃO">NÃO</option> </select> </label> </body> </html> Agradeço desde já. Abs.
-
Boa Tarde! Pessoal, Estou precisando realizar um cálculo dentro de uma select, mas não estou conseguindo, segue abaixo a select sem as operações e um exemplo (que não funcionou) logo abaixo: Este código está funcionando: select A.CODPRODUTO, A.LOTE, A.QTD, A.`LOCAL`, A.OT, A.ALTUSU, A.ALTMOM, B.CODPRODUTO, B.DESCRICAO, B.CUSTO, C.ICMS_VALOR, C.IPI_VALOR, C.COFINS_VALOR, C.QTD from proqtd as A inner join produto as B on a.CODPRODUTO = B.CODPRODUTO inner join nfeprodu as C on B.CODPRODUTO = C.PRODUTO Este não funciona e da erro devido ao cálculo. select A.CODPRODUTO, A.LOTE, A.QTD, A.`LOCAL`, A.OT, A.ALTUSU, A.ALTMOM, B.CODPRODUTO, B.DESCRICAO, (B.CUSTO, - C.ICMS_VALOR, - C.IPI_VALOR, - C.COFINS_VALOR, / C.QTD) as CustoSemImpostos from proqtd as A inner join produto as B on a.CODPRODUTO = B.CODPRODUTO inner join nfeprodu as C on B.CODPRODUTO = C.PRODUTO O que eu preciso é o seguinte, que me traga os itens com os valores sem os impostos, veja acima que a tentativa está sendo de pegar o valor de custo de um item, subtrair os impostos e dividir pela quantidade em estoque, desta forma, tenho o valor da unidade de cada item sem os impostos, mas não estou conseguindo. Se alguém puder me ajudar com um exemplo, ficarei muito agradecido. Obrigado!
-
Fazer um select em duas colunas da mesma tabela sem usar o AND ou OR
iguulima postou um tópico no fórum PHP
É possivel realizar uma consulta SQL em duas colunas da mesma tabela usando outra função que não seja o AND ou OR? Segue o meu Select ate agora: (SELECT * FROM product WHERE comid = $idcom AND status = 'Ativo' AND categ = $category AND nameprod like'%$search%' ORDER BY id DESC) Por exemplo se eu colocar um AND após buscar o nameprod, no nome do produto não tiver a palavra chave ele também não irá buscar. Ou se colocar um OR ele anulo as outras condições até onde eu sei. Iniciante em programação. -
Boa noite! Td bem com vcs? Estou usando esse código mas não retorna nada! Alguém pode me ajudar ? <?php $sql = mysqli_query($link, "SELECT ver_post, COUNT(ver_post) AS Quantidade FROM tab_comentarios where ver_post = 'red' Group by ver_post"); ?> Variável <?php echo $Quantidade; ?>
-
Boa tarde, pessoal! tenho um codigo que peguei de uma video aula, na video aula funciona normal, mas comigo naun esta funcionando! os codigos estaun identicos e em meu server naun roda. alguem pode me ajudar? veja o codigo index.php <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>Carrinho de Compras</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" /> </head> <body> <div class="container"> <div class="row"> <?php $pdoConnection = require("conexao.php"); $sql = mysqli_query($link, "SELECT * FROM tab_pedido"); //$qr = mysql_query($sql) or die (mysql_error()); while($line = mysqli_fetch_array($sql)){ $Nome_produto = $line['Nome_produto']; $Valor_produto = $line['Valor_produto']; $Descricao_produto = $line['Descricao_produto']; $Foto_produto = $line['Foto_produto']; $id_produtos = $line['id_produtos']; ?> <div class="col-4"> <div class="card"> <div class="card-body"> <h4 class="card-title"><?php echo $Nome_produto;?></h4> <h4 class="card-title"><img src="<?php echo $Foto_produto; ?>" style="border-radius: 10px;" width="75px" height="75px" /></h4> <h6 class="card-subtitle mb-2 text-muted"> R$<?php echo number_format($Valor_produto, 2, ',', '.')?> </h6> <a class="btn btn-primary" href="teste_carrinho.php?acao=add&id=<?php echo $id_produtos;?>" class="card-link">Comprar</a> </div> </div><br/> </div> <?php } ?> </div> </div> </body> </html> codigo carrinho.php <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //ADICIONA PRODUTOS if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id_produtos']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } else { $_SESSION[‘carrinho’][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id_produtos = intval($_GET['id_produtos']); if(isset($_SESSION['carrinho'][$id_produtos])){ unset($_SESSION['carrinho'][$id_produtos]); } } //ALTERAR QUANTIDADE if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id_produtos => $qtd){ $id_produtos = intval($id_produtos); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id_produtos] = $qtd; }else{ unset($_SESSION['carrinho'][$id_produtos]); } } } } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" /> </head> <body> <div class="container"> <div class="card mt-5"> <div class="card-body"> <h4 class="card-title">Carrinho</h4> <a href="teste_index.php">Lista de Produtos</a> </div> </div> <form action="?acao=up" method="post"> <table class="table table-strip"> <thead> <tr> <th>Produto</th> <th>Quantidade</th> <th>Preço</th> <th>Subtotal</th> <th>Ação</th> </tr> </thead> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo'<tr> <td colspan="5">Não há produto no carrinho</td> </tr>'; } else { include "conexao.php"; $total = 0; foreach($_SESSION['carrinho'] as $id_produtos => $qtd){ $sql = "SELECT * FROM tab_pedido WHERE id_produtos = '$id_produtos'"; $qr = mysql_query($sql) or die (mysql_error()); $ln = mysql_fetch_assoc($qr); $Nome_produto = $ln['Nome_produto']; $Valor_produto = number_format($ln['Valor_produto'], 2, ',', '.'); $sub = number_format($ln['Valor_produto'] * $qtd, 2, ',', '.'); $total += $ln['Valor_produto'] * $qtd; echo ' <tr> <td>'.$Nome_produto.'</td> <td><input type="text" size="3" name="prod['.$id_produtos.']" value="'.$qtd.'" /></td> <td>R$ '.$Valor_produto.' </td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id_produtos='.$id_produtos.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',','.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> </body> </html> aonde eu estou errando????
-
Boa tarde galera. Fiz um select que tras 4 informações do banco (matricula, nome, data e hora) SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ORDER BY QD1_DTBAIX, QD1_HRBAIX Retornando os seguintes registros: Preciso retornar somente as linhas em amarelo, que seria a seguinte condição. Caso tiver alguma matricula igual, trazer somente o registro com a maior data, junto com seu respectivo horário. O mais próximo que consegui chegar foi utilizando o MAX para data e hora, e agrupando o restante dos campos. SELECT QD1_MAT,RA_NOME,MAX(DATA), MAX(QD1_HRBAIX) FROM ( SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ) GROUP BY QD1_MAT,RA_NOME Porém na hora ele não pega o valor correspondente e sim o valor máximo. Ai estou travado nessa parte, como faço para trazer a hora corresponde sem o restante dos registros?
-
Olá amigos! Tenha a seguinte estrutura no banco MySQL COD | PONTOX | PONTOY | ATLETAX | ATLETAY 1 | 0 | 1 | Maria | João 2 | 2 | 0 | João | Maria 3 | 0 | 2 | Maria | João 4 | 7 | 5 | Maria | João 5 | 0 | 3 | João | Maria 6 | 2 | 1 | João | Maria 7 | 0 | 6 | Maria | João 8 | 4 | 0 | João | Maria Preciso de ajuda para somar quantos pontos fez o atleta João nos últimos 5 torneios (COD 8, 7, 6, 5 e 4) Há momento que o João jogou em X e outro momento em Y. Abaixo segue meu Select, onde a soma dos pontos deve ser 17. nomeatleta = "João" Set soma= banco.execute("SELECT sum(PONTOX ) AS somax, sum(PONTOY ) AS somay FROM (select cod, pontox, pontoy, atletax, atletay from torneios where (atletax like '"&nomeatleta&"' or atletay like '"&nomeatleta&"') order by cod desc limit 5) AS temp")
-
boa tarde. Estou precisando de um Select que retorne uma soma que ao chegar a determinado valor ela reinicie e continue fazendo sucessivamente select pedido, volume, limite, SUM(volume) over (order by pedido ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) saldo from pedidos group by pedido o select está retornando assim porém quero que toda vez que chegue ou passe do limite resete o saldo, por exemplo parar no 100 que é o limite e começar um novo saldo pedido volume limite saldo 1 70 100 70 2 10 100 80 3 20 100 100 4 50 100 150 5 30 100 180 preciso que ele soma o volume enquanto o saldo seja <= que o "limite", quando passar pare de somar e comece outra soma começando do 0, como no exemplo abaixo. pedido volume limite saldo 1 70 100 70 2 10 100 80 3 20 100 100 4 50 100 50 5 30 100 80
- 4 respostas
-
- oracle
- analytic functions
- (e mais 4 )