
fulvio
Moderadores-
Total de itens
1.218 -
Registro em
-
Última visita
Tudo que fulvio postou
-
(Resolvido) Multiplicação de hora convertida
pergunta respondeu ao Rafael Gazzatte de fulvio em SQL Server
Boa tarde Rafael, rs... sem problemas... Assim não tem como, porque o horário 128:00:00 não existe. O sql não identificará com sendo uma data válida. -
(Resolvido) leitura de arquivo texto via dts SQL SERVER 2000
pergunta respondeu ao reinaldoaz de fulvio em SQL Server
Boa tarde Reinaldo, Verifique o tamanho do campo em que os dados estão sendo gravados. Faça o este alterando o tipo para varchar. Todas as linhas são inseridas no sql? -
(Resolvido) Multiplicação de hora convertida
pergunta respondeu ao Rafael Gazzatte de fulvio em SQL Server
Um exemplo: select DATEADD(hh, 5, getdate()) Se pegar 16:00:00 * 8, qual seria o resultado? -
(Resolvido) Multiplicação de hora convertida
pergunta respondeu ao Rafael Gazzatte de fulvio em SQL Server
Boa tarde Rafael, Apenas uma dúvida: você quer multiplicar a data por 8 ou acrescentar 8 horas? Porque pensando em data, se multiplicar por 8 você terá que levar em consideração os dias também, não somente a hora. O interessante que a data começará a se repetir a partir da 3ª vez que multiplicar.... 16:00 24:00 08:00 16:00 ..... ..... Se for acrescentar 8 horas, pode utilizar a função DATEADD. O erro ocorre porque você convert uma data em caracter. Depois você tenta multiplicar um caraceter por 8. Por isso ocorre o erro de tipo. -
(Resolvido) TOTAL DE DIAS E HORAS ENTRE DATAS
pergunta respondeu ao Vinicius Schuh de fulvio em SQL Server
rs.... com certeza fica mais fácil, pois a conervão será apenas para um formato. Precisando estamos ai!! :.) -
Script - Contar meses para pagamento retroativo
pergunta respondeu ao Fernandinha de fulvio em SQL Server
Ficaria mais ou menos assim: DECLARE @Cont AS INT SET @Cont = (SELECT COUNT(id) FROM Tabela WHERE MesBolsa1=10) SET @Cont = @Cont + (SELECT COUNT(id) FROM Tabela WHERE MesBolsa2=10) SET @Cont = @Cont + (SELECT COUNT(id) FROM Tabela WHERE MesBolsa3=10) SET @Cont = @Cont + (SELECT COUNT(id) FROM Tabela WHERE MesBolsa4=10) Select @Cont Neste caso você pega todas as linhas q possuem correlação com o mês 10. -
Script - Contar meses para pagamento retroativo
pergunta respondeu ao Fernandinha de fulvio em SQL Server
você terá que criar uma variável como contador e verificar todos os campos das colunas MesBolsaXX para saber o mês. -
Script - Contar meses para pagamento retroativo
pergunta respondeu ao Fernandinha de fulvio em SQL Server
Ok, mas se na coluna QtMesesPagar estiver 6? Aí terá que acrescentar mais colunas para as demais bolsas.... e assim por diante. Neste caso, a modelagem redunda os dados. Pensa se fosse parcelamento de carro em 60 vezes? -
(Resolvido) TOTAL DE DIAS E HORAS ENTRE DATAS
pergunta respondeu ao Vinicius Schuh de fulvio em SQL Server
Fica um pouco complicada a manipulação... segue um exemplo: CREATE TABLE #tabela (dia INT, hora int, minuto int) INSERT INTO #tabela (dia) SELECT DATEDIFF (hh,'2011-04-23 23:59', '2011-04-25 01:01') / 24 dia update #tabela SET hora=(SELECT DATEDIFF (mi,'2011-04-23 23:59', '2011-04-25 01:01') / 60 - (select dia FROM #tabela)*24) update #tabela SET minuto=((SELECT DATEDIFF (mi,'2011-04-23 23:59', '2011-04-25 01:01')) - ((select dia FROM #tabela)*24*60 + (select hora FROM #tabela)*60)) select * FROM #tabela OBS.: não fiz nenhum teste com outras datas. No horário de abertura de 24:00 hs, alterei para 23:59 hs por causa da formatação do sql. -
Script - Contar meses para pagamento retroativo
pergunta respondeu ao Fernandinha de fulvio em SQL Server
Bom dia Fernandinha, Olhando o modelo que passou, me chamou a atenção a modelagem... :.) As bolsas deveriam estar em uma coluna apenas. Desta forma, terá que verificar todas as linhas das 4 bolsas (colunas) para conseguir somar o mês. -
Bom dia Beto, Ok, entendi o q deseja. Neste caso, você poderá utilizar o CASE para testar os campos. Fiz um exemplo com o que passou: CREATE TABLE #tabela (CodMembro INT, NomeMembro VARCHAR(50), NomeVisitante VARCHAR(50)) INSERT INTO #tabela VALUES (499, 'JESUS', null) INSERT INTO #tabela VALUES (10001, NULL, 'Filho de Deus') INSERT INTO #tabela VALUES (100, 'Lucas', null) SELECT CodMembro, CASE WHEN NomeMembro IS NOT NULL THEN NomeMembro WHEN NomeVisitante IS NOT NULL THEN NomeVisitante end Nome FROM #tabela t
-
(Resolvido) TOTAL DE DIAS E HORAS ENTRE DATAS
pergunta respondeu ao Vinicius Schuh de fulvio em SQL Server
Bom dia Vinicius, você terá que concatenar a data com a hora para realizar a diferença entre elas. Como você quer nos formatos de Dia / Hora / minuto, terá que fazer os cálculos. -
Boa tarde Pri, Tente fazer os cálculos passo a passo, utilizando temporárias. As vezes a conta não dá o resultado esperado por causa dos agrupamentos utilizados. Crie uma temporária e vá fazendo as manipulções dos dados nela. Além de ficar mais fácil de compreender, a manutanção fical legal também!!
-
Bom dia Beto, Para agrupar os campos, poderá utilizar o +. Ex.: NomeMembro + ' ' + NomeVisitante OBS.: O + quando é caracter é concatenado, mas quando é inteiro é somado.
-
Bom dia Bizarro, Tópico movidio para: Fórum Script Brasil > Programação & Desenvolvimento > ASP
-
Bom dia Helvis, O problema pode estar no Group By, campo MOVI.DATA_COMPRA. Se a data da compra tiver hora, minutos, segundos, o sql não irá agrupar. você também está utilizando o campo no between... dê uma olhada nas datas.
-
Com certeza é a melhor solução mesmo. Via sql, as datas virão duplicadas, de acordo com a quantidade de linhas que retornar.
-
Mas você quer quando retornar o resultado, vir um campo com a data da impressão?
-
Variavel no SQL sendo buscada em tabela do excel
pergunta respondeu ao Vicente Pietrobon de fulvio em SQL Server
Bom dia Vicente, Seja bem vindo ao Forum!!! :.) No sql existe a função OPENROWSET que poderá utilizar: http://msdn.microsoft.com/pt-br/library/ms190312.aspx Outra forma de fazer seria criando um linked server para acesso às planilhas: http://imasters.com.br/artigo/3874/sql_ser...arquivos_texto/ -
Bom dia Vinicius, Não entendi ao certo sua dúvida. Mas caso queira identificar a data/hora em que o script foi executado, poderá utilizar a função getdate() do sql.
-
Bom dia Vinicius, Fazer cálculos no sql é bem complicado mesmo... rs. Tem uma funcionalidade bem interessante no sql, e quase ninguém sabe. Vale a pena a dica!!!! create TABLE dbo.Tabela (A INT, B INT, C as (A+B))
-
Bom dia Caio, Para o sql 2008 não. No seu script, acrescentei um () q estava faltando. Alterei o EXEC para select. "Force" uma axecução para testes. Copie o resultado do select e execute no console. Olha se dá certo.... CREATE PROCEDURE SP_ELIMINA_BLOCK AS Declare @v_spid INT DECLARE @Sql VARCHAR(100) Set @v_spid = (SELECT spid FROM MASTER.DBO.SYSPROCESSES BLOCKING WHERE BLOCKING.BLOCKED = 0 AND EXISTS (SELECT 1 FROM MASTER.DBO.SYSPROCESSES BLOCKED WHERE BLOCKED.BLOCKED = BLOCKING.SPID )); Set @Sql = 'KILL ' + cast(@V_SPID AS VARCHAR) select (@Sql)
-
Bom dia Ivan, Recursividade no sql é sempre crítico.... principalmente se você tem uma tabela que possui recursividade infinita. Mas vamos lá. Criei um exemplo com a tabela que passou. Está bem simples, mas dá para se ter uma idéia de como funciona. Espero que ajude: -- Criação da temporária CREATE TABLE #tabela (id INT, parent_id INT, nome VARCHAR(50)) -- Inserção dos dados insert into #tabela values (1 , null , 'registro 1') insert into #tabela values (2 , 1 , 'registro 1') insert into #tabela values (3 , 2 , 'registro 1') insert into #tabela values (4 , null , 'registro 2') insert into #tabela values (5 , 4 , 'registro 2') insert into #tabela values (6 , 3 , 'registro 1') insert into #tabela values (7 , 5 , 'registro 2') -- Rodar daqui até o final DECLARE @Cont AS INT DECLARE @Proximo INT DECLARE @Resultado AS VARCHAR(100) SET @Resultado = '' SET @Cont = 1 SET @Proximo = (SELECT parent_id FROM #tabela WHERE id=@Cont) WHILE @Cont <= (select MAX(id) FROM #tabela) BEGIN WHILE @Proximo IS NOT NULL BEGIN SET @Resultado = @Resultado + cast(@Proximo AS VARCHAR(2)) SET @Proximo = (SELECT parent_id FROM #tabela WHERE id=@Proximo) END SET @Cont = @Cont + 1 SET @Proximo = (SELECT id FROM #tabela WHERE id=@Cont) SET @Resultado = @Resultado + '|' END SELECT @Resultado
-
Bom dia Vinicius, Tem como sim, mas a estrutura fica bem grande. Aí a manutenção fica mais complicada... Muitas pessoas tentam fazer um cálculo com alias, e depois utilizar o alias em outro cálculo. O problema é que o sql não identifica o alias como uma variável. Sendo assim, toda vez que quiser fazer referência ao alias, terá q copiar e colar o script que o gerou. Assim dará para você fazer o que deseja. O problema será a complexidade do script.
-
Bom dia Leandro, O certo seria cada usuário ter o acesso específico à Base. Assim você poderá colocar privilégios e restrições para cada usuário. Confira usuário/senha da rede e do banco. Outra coisa: qual é o Windows?