Ir para conteúdo
Fórum Script Brasil

fulvio

Moderadores
  • Total de itens

    1.218
  • Registro em

  • Última visita

Tudo que fulvio postou

  1. Boa tarde Jair, Tem como fazer uma inversão entre Linha X Coluna, mas não gosto de mexer pois o resultado as vezes não fica como esperado.... A melhor forma que vejo seriam vários subselects para retornar os valores. Fiz um exemplo e espero que ajude: -- Criação da temporária CREATE TABLE #Valor (DATA DATETIME, Valor INT, Condicao VARCHAR(20)) -- Inserção dos Dados INSERT INTO #Valor VALUES ('2012-04-01' , 100 , 'CARTAO') INSERT INTO #Valor VALUES ('2012-04-01' , 30 , 'DINHEIRO') INSERT INTO #Valor VALUES ('2012-04-01' , 200 , 'CHEQUE') INSERT INTO #Valor VALUES ('2012-04-01' , 500 , 'CHEQUE') INSERT INTO #Valor VALUES ('2012-04-02' , 250 , 'CARTAO') INSERT INTO #Valor VALUES ('2012-04-02' , 25 , 'DINHEIRO') INSERT INTO #Valor VALUES ('2012-04-02' , 150 , 'CARTAO') INSERT INTO #Valor VALUES ('2012-04-02' , 80 , 'DINHEIRO') INSERT INTO #Valor VALUES ('2012-04-03' , 100 , 'CARTAO') INSERT INTO #Valor VALUES ('2012-04-03' , 100 , 'CARTAO') INSERT INTO #Valor VALUES ('2012-04-03' , 100 , 'CARTAO') INSERT INTO #Valor VALUES ('2012-04-03' , 100 , 'CARTAO') -- Resultado SELECT v.DATA, (SELECT SUM(c.valor) FROM #Valor c WHERE c.DATA=v.DATA AND c.condicao='Cartao') TotalCartao, (SELECT SUM(c.valor) FROM #Valor c WHERE c.DATA=v.DATA AND c.condicao='CHEQUE') TotalCheque, (SELECT SUM(c.valor) FROM #Valor c WHERE c.DATA=v.DATA AND c.condicao='DINHEIRO') TotalDiqueiro, (SELECT SUM(c.valor) FROM #Valor c WHERE c.DATA=v.DATA AND c.condicao='DINHEIRO') TotalDiqueiro, (SELECT SUM(c.valor) FROM #Valor c WHERE c.DATA=v.DATA) Total FROM #Valor v GROUP BY v.DATA
  2. Bom dia Fernandinha, Temporárias com muitos registros realmente são problemas (sejam elas de instância ou em tempo de execução). O primeiro ponto é tentar minimizar a quantidade de registros a inserir nesta temporária. Caso não tenha jeito, uma alternativa é alterar de temporária para física. No caso de física, quando realizar as inserções, retire todas as constraints q tiver. Depois da inserção recrie ou ative-as.
  3. Bom dia Baixinha, O certo seria colocar uma função no aplicativo, para que o usuário visualize os dados com o formato que deseja. Como é um aplicativo que grava as informações desformatadas, você sempre terá q corrigir a base. Nunca resolverá o problema... rs. Mas caso queira corrigiar a base, terá q criar um processo onde coloque a letra maiúscula no inicio de cada nome. Esta implementação será bem complexa: não poderá apenas colocar maiúscula na primeira letra após o espaço em branco, uma vez que os nomes como "Luis de Assis", o "de" terá que continuas com todas as letras minusculas. Outra alternativa é alterar o case sensitive do banco, para que as letras minusculas/maiúsculas sejam iguais na pesquisa.
  4. Boa tarde Pizero, Não conheço nenhuma forma de fazer isto... mas ao invés de digitar, poderá copiar a colar... rs. Comando: sp_help TABELA Aparecerá o nome das colunas. Copia e cola no script.
  5. Bom dia magaupe, Se quiser as pessoas q tenham os cursos, poderá substiuir os lefts por inner. Tente fazer desta forma: select distinct vct_pessoa.pessoa_cod, vct_pessoa.pessoa_nome, vct_pessoa.pessoa_email1, vct_pessoa.pessoa_email2, vct_pessoa.pessoa_tel2, vct_pessoa.pessoa_tel1, vct_pessoa.pais_cod, vct_pessoa.estado_cod, vct_pessoa.cidade_cod, vct_pessoa.pessoa_lat, vct_pessoa.pessoa_long, vct_pessoa.sexo_cod From vct_pessoa inner Join pessoa_qualificacao On pessoa_qualificacao.pessoa_cod = vct_pessoa.pessoa_cod inner Join cursos_pessoas On vct_pessoa.pessoa_cod = cursos_pessoas.pessoa_cod where cursos_pessoas.curso_cod = 7587 and cursos_pessoas.curso_cod = 8354
  6. rs... com a nova informação "nome só seria apresentado se ele fosse menor que o da segunda coluna" ai fica fácil!!! Gostei do exercício Thiago. Dá pra quebrar a cabeça com ele. Sem esta informação que passou, não teria como fazer sem subselect. Pede pro professor retirar esta informação e refazer o exercício. Um bom exercício! Qualquer dúvida que tiver, estamos ai...
  7. Bom dia jooji, rs... então quase acertei... rs. O agrupamento está retornando o mínimo da hora, sem levar em consideração o ténico. Basta colocar no agrupamento a coluna do técnico. Peguei os dados que postou e coloquei na temporária. Dá uma olhada se é isso: -- criar temporária CREATE TABLE #tabela (LATITUDE VARCHAR(20), LONGITUDE VARCHAR(20), NOME VARCHAR(30), DATA DATETIME, ID int) -- carga dos dados INSERT INTO #tabela VALUES ('-23.0447652' ,'-45.6190495','RENATO DOS SANTOS ALVES','09/05/2012 09:38:24',327) INSERT INTO #tabela VALUES ('-23.0447652' ,'-45.6190495','RENATO DOS SANTOS ALVES','09/05/2012 09:44:06',327) INSERT INTO #tabela VALUES ('-23.0248539' ,'-45.5850294','RENATO DOS SANTOS ALVES','09/05/2012 09:48:30',327) INSERT INTO #tabela VALUES ('-23.0248539' ,'-45.5850294','RENATO DOS SANTOS ALVES','09/05/2012 09:53:25',327) INSERT INTO #tabela VALUES ('-23.0279585' ,'-45.5856927','RENATO DOS SANTOS ALVES','09/05/2012 09:58:23',327) INSERT INTO #tabela VALUES ('-23.0260341' ,'-45.6050516','RENATO DOS SANTOS ALVES','09/05/2012 10:03:25',327) INSERT INTO #tabela VALUES ('-23.0282634' ,'-45.6000754','RENATO DOS SANTOS ALVES','09/05/2012 10:08:23',327) INSERT INTO #tabela VALUES ('-23.0284681' ,'-45.604684','RENATO DOS SANTOS ALVES','09/05/2012 10:13:35',327) INSERT INTO #tabela VALUES ('-23.0279585' ,'-45.5856927','RENATO DOS SANTOS ALVES','09/05/2012 10:18:24',327) INSERT INTO #tabela VALUES ('-23.0279585' ,'-45.5856927','RENATO DOS SANTOS ALVES','09/05/2012 10:23:24',327) INSERT INTO #tabela VALUES ('-23.6001272' ,'-46.5125745','JULIANO FERREIRA ALVES','09/05/2012 05:13:55',328) INSERT INTO #tabela VALUES ('-23.6001272' ,'-46.5125745','JULIANO FERREIRA ALVES','09/05/2012 05:28:50',328) INSERT INTO #tabela VALUES ('-23.6328052' ,'-46.8087687','JULIANO FERREIRA ALVES','09/05/2012 06:55:27',328) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','JULIANO FERREIRA ALVES','09/05/2012 07:09:18',328) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','JULIANO FERREIRA ALVES','09/05/2012 07:24:20',328) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','JULIANO FERREIRA ALVES','09/05/2012 08:54:32',328) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','JULIANO FERREIRA ALVES','09/05/2012 09:24:25',328) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','JULIANO FERREIRA ALVES','09/05/2012 09:54:35',328) INSERT INTO #tabela VALUES ('-23.608784' ,'-46.7536541','JULIANO FERREIRA ALVES','09/05/2012 10:24:22',328) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','ALEXANDRE GOMES FONSECA','09/05/2012 06:56:05', 329) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 06:57:32', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 07:02:31', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 07:07:32', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 07:12:33', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 07:22:34', 330) INSERT INTO #tabela VALUES ('-23.628367833333332' ,'-46.77906323333334','ROGER VIEIRA SILVA','09/05/2012 07:27:30', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 07:33:19', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 07:42:34', 330) INSERT INTO #tabela VALUES ('-23.62646055' ,'-46.77658255','ROGER VIEIRA SILVA','09/05/2012 07:47:31', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 07:52:38', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 07:57:33', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 08:07:33', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 08:17:34', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 08:22:34', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 08:27:36', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 08:32:33', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 08:37:35', 330) INSERT INTO #tabela VALUES ('-23.6149752' ,'-46.783605','ROGER VIEIRA SILVA','09/05/2012 08:42:58', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 08:48:19', 330) INSERT INTO #tabela VALUES ('-23.6321824' ,'-46.7840246','ROGER VIEIRA SILVA','09/05/2012 08:52:33', 330) INSERT INTO #tabela VALUES ('-23.6207387' ,'-46.7691405','ROGER VIEIRA SILVA','09/05/2012 08:57:40', 330) INSERT INTO #tabela VALUES ('-23.6149752' ,'-46.783605','ROGER VIEIRA SILVA','09/05/2012 10:02:35', 330) INSERT INTO #tabela VALUES ('-23.6330044' ,'-46.821016','ROGER VIEIRA SILVA','09/05/2012 10:07:35', 330) INSERT INTO #tabela VALUES ('-23.6176175' ,'-46.7891977','ROGER VIEIRA SILVA','09/05/2012 10:12:37', 330) INSERT INTO #tabela VALUES ('-23.6370523' ,'-46.8329741','ROGER VIEIRA SILVA','09/05/2012 10:17:33', 330) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 07:14:32', 331) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 07:39:25', 331) INSERT INTO #tabela VALUES ('-23.6318396' ,'-46.6061484','VANDERLEI CARLOS CARDOSO','09/05/2012 07:44:21', 331) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 07:54:23', 331) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 08:04:25', 331) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 08:14:34', 331) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 08:22:44', 331) INSERT INTO #tabela VALUES ('-23.6515041' ,'-46.5958234','VANDERLEI CARLOS CARDOSO','09/05/2012 08:27:42', 331) SELECT min(DATA), nome FROM #tabela GROUP BY (SUBSTRING(convert(VARCHAR, DATA, 120), 1, 13)), nome
  8. Fiz um exemplo logo abaixo. Criei as temporárias e fiz os testes (está comentado). Dê uma olhada. Caso seja isto e não entenda, posta aí q explico passo a passo: -- criar temporária CREATE TABLE #Estudante (Id INT, nome VARCHAR(20), Serie int) CREATE TABLE #Gosta (Id1 INT, Id2 INT) -- inserção dos dados INSERT INTO #Estudante VALUES (1, 'Gabriel', 9) INSERT INTO #Estudante VALUES (2, 'Cassandra', 9) INSERT INTO #Estudante VALUES (3, 'Alexis', 11) INSERT INTO #Estudante VALUES (4, 'Kyle', 12) INSERT INTO #Gosta values(1, 2) INSERT INTO #Gosta values(2, 1) INSERT INTO #Gosta values(3, 4) INSERT INTO #Gosta values(4, 3) -- select para conferir os dados SELECT * FROM #Estudante SELECT * FROM #Gosta -- seu select, utilizando os dados inseridos na temporária SELECT E1.NOME, E1.SERIE, E2.NOME, E2.SERIE FROM #ESTUDANTE E1, #ESTUDANTE E2, #GOSTA G1, #GOSTA G2 WHERE E1.ID = G1.ID1 AND E2.ID = G1.ID2 AND E1.ID = G2.ID2 AND E2.ID = G2.ID1 -- Meu select SELECT E1.NOME, E1.SERIE, E2.NOME, E2.SERIE FROM #ESTUDANTE E1, #ESTUDANTE E2, #GOSTA G WHERE E1.Id=G.Id1 AND E2.Id=G.Id2 and E1.id IN (SELECT MIN(ID1) FROM #GOSTA GROUP BY ID1*ID2 HAVING COUNT (ID1*ID2)>1)
  9. Boa tarde Thiago, rs... sem problemas. Pergunto porque não costumo ajudar pessoas q estão fazendo faculdade ou curso. Muitos postam trabalhos e esperam soluções fáceis... rs (não estou falando de vc). Pois bem... tenho uma dúvida: como deve ser a resolução deste exercício? Apenas 1 select? Ou pode fazer do jeito q quiser? OBS.: A linha não se encontra duplicada. Perceba que os dados estão misturados. Para o sql, as linhas são distintas.
  10. Boa tarde jooji, Acho que entendi mais ou menos... rs. Fiz um exemplo logo abaixo. Dê uma olhada se seria isto mesmo. Criei uma temporária e inseri alguns dados. Caso não seja isto, favor informar. -- criar temporária CREATE TABLE #tabela (Id INT, DATA DATETIME) -- carga dos dados INSERT INTO #tabela VALUES (1, '2012-05-08 10:01') INSERT INTO #tabela VALUES (2, '2012-05-08 10:15') INSERT INTO #tabela VALUES (3, '2012-05-08 10:30') INSERT INTO #tabela VALUES (4, '2012-05-08 10:50') INSERT INTO #tabela VALUES (5, '2012-05-08 11:05') INSERT INTO #tabela VALUES (6, '2012-05-08 11:35') INSERT INTO #tabela VALUES (7, '2012-05-08 12:10') INSERT INTO #tabela VALUES (8, '2012-05-08 12:26') SELECT min(DATA) FROM #tabela GROUP BY (SUBSTRING(convert(VARCHAR, DATA, 120), 1, 13))
  11. Bom dia thiagogoiis, Desculpe pela pergunta... mas isso é trabalho de faculadade / Curso? :)
  12. Bom dia jooji, Os dados que "puxa" estão na base gravados? Eles são gravados de 5 em 5 minutos, ou no resultado do seu select está aparecendo de 5 em 5 minutos? Na cláusula where que postou, ele lista os dados que estão gravados na base de acordo com a data atual. Apenas isto. Não há nada referente a intervalo de dada. Sendo assim, tudo q estiver gravado na base em que a data do campo POS.DATE seja igual a data atual, será listado. Outra coisa: a conversão da data para o formato 101 é o Americano: mm/dd/aaaa. Caso queira trabalhar com minutos terá que realizar outra conversão também.
  13. Bom dia Ronaldo, Ficaria deste jeito: SELECT m.REFERENCIA, m.DESCRICAO, mm.descricao FROM MERCADORIA m left join mercadoria_marcas mm ON m.merc_id_marca = mm.id_codigo WHERE m.SITUACAO ='3' and m.ID_GTOT > 0 ORDER BY m.DESCRICAO
  14. rs... isso ai!!! Precisando....
  15. Boa tarde Sebola, Fiz um exemplo simples logo abaixo. O retorno está em milisegundos, pois tem duas inserções com status 5 com pouca diferença de tempo. Dê uma olhada pra ver se clareia as ideias... rs. -- criação de temporária CREATE TABLE #StatusMotivo (SMID INT, SMData DATETIME, SMTarID INT, SMStatus INT) -- inserção dos dados INSERT INTO #StatusMotivo VALUES (4254671,'2010-07-31 10:20:57.000',1661576, 0) INSERT INTO #StatusMotivo VALUES (4254672,'2010-07-31 10:20:58.000',1661576, 1 ) INSERT INTO #StatusMotivo VALUES (4255050,'2010-07-31 14:32:37.607',1661576, 5 ) INSERT INTO #StatusMotivo VALUES (4255051,'2010-07-31 14:32:37.750',1661576, 5 ) INSERT INTO #StatusMotivo VALUES (4255269,'2010-07-31 23:42:24.000',1661576, 1 ) INSERT INTO #StatusMotivo VALUES (4255287,'2010-07-31 23:45:12.000',1661576, 9) -- verificação dos 2 registros com status=4 SELECT * FROM #StatusMotivo WHERE SMStatus=5 -- diferença das datas SELECT datediff (ms, (SELECT top 1 sm.SMData FROM #StatusMotivo sm WHERE s.SMTarID=sm.SMTarID AND SMData <> 5 ORDER BY s.SMData DESC), SMData) Diferenca FROM #StatusMotivo s WHERE s.SMStatus=5
  16. Bom dia Vanessa, Seja bem vindo ao Fórum!! Tem um link logo abaixo na lista que fala sobre isso. Segue: http://scriptbrasil.com.br/forum/index.php?showtopic=168673
  17. fulvio

    Ajuda com SQL

    Boa tarde Dudes, Seria isto? (altere a CHAVE para as colunas de relacionamento entre as tabelas). SELECT c.STA_RVS, c.CONTRATO, c.APLIC, c.DSN_ENV,EMPRESA, t.data from CARACT_TRANS c, TRAFEGO t WHERE c.CHAVE=t.CHAVE
  18. Boa tarde Pizero, você pode converter os campos char para float. Ficaria desta forma: select Produtos.Pro_codigo, forengenharia.codigo, Produtos.Pro_descricao from forengenharia inner join Produtos on forengenharia.codigo = Produtos.Pro_codigo where cast (produtos.pro_codigo AS FLOAT) = forengenharia.codigo Mas faça os testes para ver se a conversão retorna o resultado esperado.
  19. Boa tarde Pizero, Verifique os tipos das colunas: - forengenharia.codigo e Produtos.Pro_codigo - produtos.pro_codigo e forengenharia.codigo Você está tentando comparar caracter com número.
  20. Boa tarde Sebola, Sinceramente não sei qual a melhor. Rode o script com o mapa de execução e olhe se tem diferença no tempo.
  21. fulvio

    Dados Repetidos

    rs... ai tem que duplicar. Precisando estamos ai!!
  22. Boa tarde Sebola, Dá uma olhada se melhora desta forma: DECLARE @DataIni DATETIME set @DataIni = convert(VARCHAR(10), GETDATE(),120) + ' 00:00:00'
×
×
  • Criar Novo...