Ir para conteúdo
Fórum Script Brasil

MatheusRomagna

Membros
  • Total de itens

    21
  • Registro em

  • Última visita

Tudo que MatheusRomagna postou

  1. Bom dia! Tenta assim, agrupando pelo numero de variáveis selecionadas. select distinct fo.ano, fo.idlancamento, Case fo.tipolancamento when '3' then '1' else '0' end as tipofolha, fo.data, f.cliente, (select sum(fi.valor) from lanc fo3 inner join itemlanc fi on (fo3.folha=fi.folha) and (fo3.ano=fi.ano) inner join item e on (fi.item=e.item) where fi.item in (select es.itemsys from itemsys es where es.nome = 'valor1') and fo3.tipolancamento = fo.tipolancamento and fo3.data between '2013-01-01' and '2013-01-31' and fo3.cliente=f.cliente ) as valor_base -- --contem varias subquereies como a anterior - - from lanc fo where fo.data between '2013-01-01' and '2013-01-31' and fo.ano=2013 group by 1,2,3,4,5 --Agrupa pelo numero de variaveis selecionadas
  2. Bom dia a todos! Trabalho com banco de dados firebird, e estou com uma situação. Tenho uma tabela ( CAIXA ), colunas ( DATA (date) , EMPRESA (integer) ) , e outra tabela ( DATASFALTAS ), colunas (FALTADATA (date)) no nosso caso o cliente ficou sem abrir caixa ( TABELA - CAIXA ) por 1 mês. Preciso gerar uma SQL ou PROCEDURE que crie na tabela ( DATASFALTAS ) as datas que faltam na tabela ( CAIXA ) referente a um mês especifico. Para inserção na tabela ( CAIXA ) é tranquilo, preciso de um Script que confira as datas que falta na tabela ( CAIXA ) e jogue para um variável. Acho que ficou claro. Se alguém tiver uma opinião ai, posta ai galera qualquer coisa me explico melhor! Abraço a todos!
  3. Buenas Joao... Seguinte, isto é bem complicado. Teria que fazer um "remelexo" inteiro no procedimento de EXCLUSÃO de registros. Digamos, vou te dar um exemplo de notas fiscais. Você lançou até a sequência 300, e excluiu a 298. Uma maneira que vejo eu em DB que poderia resolver este caso é, Uma trigger Delete, que analise as sequencias e execute uma alteração ou execute alguma Procedure tipo, "EXCLUI_NOTA_FISCAL" sei la algo do tipo, que vá analisar qual foi excluida e realizara um calculo, tipo: SEQ_EXCLUIDA = 298 ( excluida ) MAX_SEQ = 300 DIFERENCA = 300 - 298 = 2 EXECUÇÃO = Exemplo "chucro": UPDATE TABELA SET CAMPO_SEQ = CAMPO_SEQ - DIFERENCA WHERE SEQ >= SEQ_EXCLUIDA Algo do tipo entendeu ? caso não fui muito claro, avise-me. Abraço
  4. Tudo Bem Denis, mas o Codigo que te passei ao lançar o Tópico , me traz o atributo NUMERO como campo em duplicidade, correto ? SELECT NUMERO, COUNT(*) FROM TABELA GROUP BY 1 HAVING COUNT(*) > 1
  5. Buenas Denis! Valeu Pela resposta rápida. Seguinte, não posso mover as notas para uma tabela temporária, pois tenho uma ligação com FK na tabela de itens das notas. Teria alguma outra maneira ? Sobre o Codigo: DELETE FROM TABELA WHERE NUMERO IN ( SELECT NUMERO FROM TABELA_TEMPORARIA) ) Acho que este código vai deletar um por um não diferenciando. Sei la, usando o FIRST 1 talvez não resolveria para um DELETE ? ( acho que esta clausula não pode ser usada em DELETE, mas sei la ). Se rodar ele , ele vai deletar todos da tabela que forem NUMERO = 1 , isso ? Precisava de uma coisa mais rápida, uma Procedure talvez, que chamasse os duplicados pelo Select e deletasse apenas 1 de cada. ( Não sei se tem como fazer, pelo que eu acho ) Teria como Denis? Abraço
  6. Pessoal seguinte, estou com um pequeno problema. No meu banco de dados, duplicaram varias notas, tipo acho que mais de mil. Estou usando esta SQL para saber quais numeros estão duplicados: SELECT NUMERO, COUNT(*) FROM TABELA GROUP BY 1 HAVING COUNT(*) > 1 Isto esta me trazendo todos os numeros que estão em duplicidade. Preciso de uma forma de, deletar estes registros, seja por Stored Procedure ou alguma outra maneira mais rapida ao invés de "uma por uma". Abraços.
  7. RESOLVIDO. Valeu Denis Courcy mas não precisei usar o Mysql versão 5.1.x. Segue Codigo usado em uma trigger no DB: BEGIN MINUTOS_AGORA = EXTRACT (MINUTE FROM (CAST('now' AS DATE))); END FOR SELECT EXTRACT(MINUTE FROM NEW.abadata) FROM a02aaba INTO :MINUTOS_ABA DO BEGIN DIF = :minutos_agora - :minutos_aba; IF (:DIF = 1 and new.abaesconder='N') THEN NEW.abaesconder = 'S'; End Begin IF (OLD.abaesconder = 'S') THEN IF (:DIF = 1) THEN NEW.ABAESCONDER = 'N'; END END Neste caso, vai esconder o abastecimento se a diferença for igual a 1 minuto. Abraço
  8. Buenas Rodrigues! Muito Obrigado pela resposta, ultimamente não tenho recebido nenhuma. HEHEHEHE Seguinte, vo ute explicar melhor, estas duas variaveis são parametros de imput, preciso colocar algo para que me retornem, então, preciso que na variavel imput MARCA eu use um LIKE que eu possa colocar algo dentro ( DARUMA ) que me retorne tudo que contenha DARUMA. Comando mais usado, Exemplo: MARCa LIKE '%DARUMA%' Com este me retorna tudo que contenha DARUMA, mas preciso usar a Variavel do tipo IMPUT. Olha o exemplo que estou criando para teste e ve se com isso te dou uma LUZ e você me da outra LUZ. Execute block (MARCA_IMP varchar(50) = :MARCA_IMP) returns (MARCA varchar(50)) as declare variable MARCA_I varchaR(50); declare variable modelo_I varchar(50); Begin For select e.marca, e.modelo from ecfs e where e.marca like :MARCA_IMP into :MARCA_I, :MODELO_I Do begin MARCA = :MARCA_IMP; end end Qualquer coisa avisa se ficou meio estranho.
  9. Buenas Galera! Bem básica essa força ai que preciso. HEHEHEHE, ( A falta de prática esta me afetando no MySQL ). Preciso de uma consulta utilizando o LIKE mas com um campo de IMPUT, vou dar um exemplo: SELECT MARCA, MODELO, FIRMWARE FROM IMPRESSORAS I WHERE I.MARCA LIKE :MARCA_IMP AND I.MODELO LIKE :MODELO_IMP Os dois parâmetros imput MARCA_IMP e MODELO_IMP só vão adiantar se eu colocar exatamente a marca e exatamente o modelo das impressoras, ai o select me retorna informações. Preciso adicionar os " % " para que me trouxesse tudo que contenha DARUMA em MARCA_IMP e tudo que contranha 700 em MODELO_IMP. Hoje faço desta forma, mas colocando manualmente as informações para que de certo: SELECT MARCA, MODELO, FIRMWARE FROM IMPRESSORAS I WHERE I.MARCA LIKE '%DARUMA%' AND I.MODELO LIKE '%700%' Com este código, me retorna oque preciso, mas não quero digitar manual no SCRIPT toda vez, precisava de parâmetros imput que me retornassem com dados que contenham o valor colocado. Acho que consegui me expressar ok, hehehehe. valeu Abraços.
  10. Bom dia Isaías Farias! Buscar ela em um diretório por uma trigger não tem como mesmo. Oque da para fazer é, pegar esta *.sql e criar no banco de dados uma procedure, assim dentro da trigger, jogar um EXECUTE PROCEDURE NOME_DA_PROCEDURE. Este é o Jeito via banco de dados. Obs: Caso precise, mande a sql que te ajudo na procedure. abraços.
  11. Eae Galera. Estou com problemas. Preciso de uma consulta em uma coluna de DATE quando for maior que 10 min. EX: DATA = '10/01/2012 10:25:00' Preciso de um select quando a DATA for a mesma ( 10/01/2012 ) mas com 10min a mais, ( 10/01/2012 10:35:00 ). Valeu!
  12. Muito certo, isto mesmo que o Denis Courcy relatou. Você não tem Indices de ligações, tem que ter Indices para que fique mais rapida as consultas assim ligando os JOIN TABLE1 f on f.ID1 = ID2.
  13. Precisa que liste os CPF e ID, ou por exemplo: CPF ------------------ COUNT_DUPLICADOS 5555555555 -------- 4 Onde Retorna o CPF e quantos duplicados = 4 Ou precisa que retorne CPF ------------------ COUNT_DUPLICADOS 5555555555 -------- 69 5555555555 -------- 58 5555555555 -------- 21 5555555555 -------- 58 Litando quantos CPF tem e quais os ID ?
  14. Buenas bj_batata! Acho que apenas jogar uma procedure para voce aqui não resolveria sua questão. Relate qual a necessidade, é uma procedure que retorna algo ? oque retorna ? é uma procedure para subir os times que ganharam ( +3 pts ) e organizar a tabela de classificação... Precisamos te ajudar, mas precisamos que nos ajude com mais informações. É muito vago isto. Abraço
  15. Seguinte, tenta este comando: SELECT * FROM TABELA1 T1 LEFT JOIN TABELA2 T2 ON T2.ID = T1.ID ORDER BY DATA DESC Isso ?
  16. Esta indicando a tabela referente a trigger?
  17. Ola Mauror, Seguinte , se não tiver uma clausula para a data, não pode ter uma pesquisa pela mesma. Caso não tenha esta data de 31/03/2010 na tabela mesmo registrada, da para usar um BETWEEN no comando de seleção. Exemplo: Select * from TABELA A where A.DATA BETWEEN '29/02/2010' and '01/04/2010' and A.SALDO > 0 tenta assim.
  18. ola Matheus, Vou tentar te ajudar. Não me lembro se o JOIN funciona no PHP, mas vamos la :D Das duas tabelas a FOTOS e a MENSAGENS, qual as colunas que as ligam ? Exemplo: FOTOS = nome_usuario MENSAGENS = nome_usuario A nome_usuario é uma coluna de ligação das duas tabelas. Aguardo.
  19. Boa tarde Galera. Seguinte, trabalho para o suporte de uma empresa de postos de combustíveis, e precisava criar um procedimento para, que a cada 10min no banco de dados em uma certa tabela, se não fosse quitado o devido abastecimento, o mesmo alterasse uma coluna, exemplo: Tabela = A02AABA Coluna1 = ABADATA (Date) Coluna2 = ABAESCONDER (CHAR 1) Se o abastecimento for feito em 14/01/2013 15:30 - E o horário do micro chegar em 15/01/2013 15:40 , a coluna ABAESCONDER que esta com o valor de "N" passar a ser "S". Pensei em gerar um trigger, mas não obtive sucesso. Alguém sabe algo ??? Valeu Galera, um abraço
×
×
  • Criar Novo...