
fulvio
Moderadores-
Total de itens
1.218 -
Registro em
-
Última visita
Tudo que fulvio postou
-
Boa tarde Tonblz, Tem muito tempo que não mexo com o 2000... rs. Ele é bem menos amigável, comparado com as novas versões do Sql. Tem aplicativos na net que geram o script pra vc. Mas poderá atulizar a função sp_helptext para recuperar o script da estrutura. Vá no sysobjects e pegue todos os nomes das procedures. Depois dê um sp_helptext. Regere no novo banco. Dará um pouco mais de trabalho, mas vai.
-
Ahm.... rs.... agora entendi!!! Para estas situações, prefiro o case. Apesar da estrutura ficar maior, acho que fica mais legível. Segue script: CREATE TABLE #tabela (IdTurma INT, HrRealizadas INT, MinRealizados INT) INSERT INTO #tabela VALUES (11195, 12, 0) INSERT INTO #tabela VALUES (11195, 12, 0) INSERT INTO #tabela VALUES (11195, 12, 0) INSERT INTO #tabela VALUES (11195, 4, 45) INSERT INTO #tabela VALUES (11201, 5, 0) SELECT IdTurma, CASE len(CAST(SUM(HrRealizadas)AS VARCHAR)) WHEN 1 THEN '0' + CAST(SUM(HrRealizadas)AS VARCHAR) ELSE CAST(SUM(HrRealizadas)AS VARCHAR) END + ':' + CASE len(cast(SUM(MinRealizados) AS VARCHAR)) WHEN 1 THEN '0' + cast(SUM(MinRealizados) AS VARCHAR) ELSE cast(SUM(MinRealizados) AS VARCHAR) end AS Total FROM #tabela GROUP BY IdTurma
-
Segue exemplo: CREATE TABLE #tabela (IdTurma INT, HrRealizadas INT, MinRealizados INT) INSERT INTO #tabela VALUES (11195, 12, 0) INSERT INTO #tabela VALUES (11195, 12, 0) INSERT INTO #tabela VALUES (11195, 12, 0) INSERT INTO #tabela VALUES (11195, 4, 45) INSERT INTO #tabela VALUES (11201, 5, 0) SELECT IdTurma, Total=CAST(SUM(HrRealizadas)AS VARCHAR)+':'+cast(SUM(MinRealizados) AS VARCHAR) FROM #tabela GROUP BY IdTurma
-
Estava perguntando o tipo por que se conseguir substituir o replicate por outra função do sql com SUM, MAX, MIN, etc (ou até mesmo uma conversão), conseguirá realizar o total sem a necessidade de especificar os campos no group by. você utilizando o replicate, há a possibilidade de sua concatenação retornar mais de 1 linha de dados. Desta forma o sql necessita a especificação da coluna no agrupamento. Não tenho como postar um script pois não tenho exemplo dos dados manipulados.... caso queira postar...
-
Bom dia Fernandinha, O erro ocorre por causa do replicate. Que tipo de dado é manipulado nos campos HrRealizadas e MinRealizados?
-
Bom dia Fernandinha, Olha se assim roda: SELECT Id, TotalHoras = REPLICATE('0',2-LEN(HrRealizadas))+ CAST((SUM(HrRealizadas) % 60) AS VARCHAR(2)) + ':' + REPLICATE('0',2-LEN(MinRealizados))+ CAST((SUM(MinRealizados) % 60) AS VARCHAR(2))/*(sum(HrRealizadas)+sum(MinRealizados/60))*/ FROM FREQUENCIA WHERE Id = 5 GROUP BY Id
-
Bom dia Jair, Desta forma, os dados serão excluidos da base de dados!! Quando postou, disse que queria "excluir os valores duplicados". Desta forma implementei com o delete. Utilizando o exemplo com a temporária que postei acima, ficaria desta forma (desta forma filtrará o resultado): select NOME_VENDEDOR FROM #Tabela group by NOME_VENDEDOR
-
Boa tarde Fernandinha, O campo 2.50 significa 02:50hs ou 14:50hs?
-
Boa tarde Jair, De nada... coloquei um exemplo logo abaixo com os dados que postou acima. Rode os scripts de exemplo e depois é só adaptar... rs. Tem também a ordenação por mês, ok? -- criando a tabela temporária create table #Tabela (Id int identity, NOME_VENDEDOR VARCHAR(10), NOME_CLIENTE VARCHAR(10), DATA_NASC DATETIME) -- inserindo os dados INSERT INTO #tabela VALUES ('João' , 'André' , '1980-03-09') INSERT INTO #tabela VALUES ('João' , 'Carla' , '1985-09-12') INSERT INTO #tabela VALUES ('Maria' , 'Carla' , '1985-09-12') INSERT INTO #tabela VALUES ('Maria' , 'José' , '1960-11-20') -- verificando os dados inseridos SELECT * FROM #Tabela -- select para ordenar pelo mês SELECT * FROM #Tabela ORDER BY (MONTH(DATA_NASC)) -- pegando os dados DUPLICADOS select min(id), NOME_VENDEDOR, count(NOME_CLIENTE) FROM #Tabela group by NOME_VENDEDOR having count(NOME_CLIENTE)>1 -- pegando o select acima, tirando os campos que não precisa e deixando apenas o campo PK DELETE FROM #Tabela WHERE id in (select min(id) FROM #Tabela group by NOME_VENDEDOR having count(NOME_CLIENTE)>1) -- verificando os dados excluidos SELECT * FROM #Tabela
-
Boa tarde, Moverei seu post para o Forum Fórum Script Brasil > Sistemas Operacionais > GNU/Linux
-
Boa tarde Jair, Esta tabela possui chave primária? Se tiver poderá dar um "select NOME VENDEDOR, count(NOME CLIENTE) ... group by NOME VENDEDOR having count(NOME CLIENTE)>1" e pegar o primeiro registro de cada vendedor. Após o select, pegue a PK e a utilize para deletar os registros. Isto funcionará apenas se os dados estiverem duplicados. Se estiverem triplicados, basta executar o processo novamente.
-
Encontrar Valor de um campo em uma tabela desconhecida
pergunta respondeu ao Baall de fulvio em SQL Server
Boa tarde Baall, As "tabelas" (que são na verdade objetos) que começam com "sys." são obejtos do Sistema (do sql). Abaixo estão alguns exemplos para entendimento: http://msdn.microsoft.com/pt-br/library/ms189783.aspx Em relação ao script, seria basicamente o mesmo, mas teria que conter 2 loops: 1 para vasculhar as tabelas e outro para vasculhar as colunas da tabela. Ficaria bem mais complexo que o exemplo q fiz no post do link, mas passaria pela mesma teoria. Focando no erro, não teria como você verificar no fonte o que está ocorrendo? Procurar desta forma é bem complicado e demorado.... -
Encontrar Valor de um campo em uma tabela desconhecida
pergunta respondeu ao Baall de fulvio em SQL Server
Bom dia Baall, você poderá utilizar a mesma estrutura do script dinâminco do post anterior: http://scriptbrasil.com.br/forum/index.php...mp;#entry648651 Faça as adaptações onde poderá retornar a possível tabela que tenha o dado. Mas o mais fácil seria identificar no fonte qual o comando que retorna a mensagem de erro. Seria bem direto mesmo. Caso não tenha acesso ao fonte, poderá monitorar o banco (tarce do sql), executando o aplicativo no ponto do erro. Com isso conseguirá identificar os processos que são executados na base e identificar a tabela que está com problema. -
Bom dia Baall, Q bom q estou do Fórum... :.) Para saber se elas estão sendo utilizadas ou não, terá que vasculhar o fonte mesmo. Pelo banco de dados não tem jeito. você pode até monitorar o acesso às tabelas de sua base, mas isso não garantirá nada.... O que pode fazer na pior da hipóteses (rs), é renomear as tabelas candidatas a exclusão. Caso alguém reclame, você volta o nome (gambiarra pura, mas funciona).
-
Boa tarde Baall, Seja bem vindo ao Forum!! Este levantamento é bem interessante de implementar... muitas pessoas precisam destes dados, principalmente quando começam a ficar perdidas no próprio Banco (rs). Uma alternativa é criar uma temporária e ir contando os registros de cada tabela da sua Base. As tabelas que possuem menos dados cadastrados (ou nenhum) são boas candidatas de pesquisa. Mas cuidado com as tabelas recém criadas. Segue um script que fiz. Espero que ajude: -- criando tabela temporária CREATE TABLE #Tabelas (Nome VARCHAR(100), Qtd INT) -- inserindo todas as tabelas da Base INSERT INTO #Tabelas (nome) SELECT name FROM sysobjects WHERE xtype='U' -- rodar daqui até no final DECLARE @Sql VARCHAR(500) DECLARE @NomeTabela VARCHAR(100) SET @NomeTabela = (SELECT top 1 nome FROM #Tabelas WHERE qtd IS NULL) WHILE @NomeTabela IS NOT NULL BEGIN SET @Sql = 'UPDATE #Tabelas SET qtd=(SELECT COUNT(*) FROM ' + @NomeTabela + ') WHERE Nome = ''' + @NomeTabela + '''' EXEC (@sql) SET @NomeTabela = (SELECT top 1 nome FROM #Tabelas WHERE qtd IS NULL) END -- Verificando os dados, depois de executado o loop SELECT * FROM #Tabelas
-
Script - ver todas as tabelas em um banco de dados
pergunta respondeu ao honda86 de fulvio em SQL Server
Bom dia Honda, Parece que este servidor é um Firebird... aí o comando não funcionará. Tente este comando: SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$VIEW_BLR IS NULL; -
(Resolvido) SQL Server 2008 R2 - Acesso ao Servidor
pergunta respondeu ao uLy- de fulvio em SQL Server
Ok, precisando estamos ai... -
(Resolvido) SQL Server 2008 R2 - Acesso ao Servidor
pergunta respondeu ao uLy- de fulvio em SQL Server
É isso mesmo. Verifique suas configurações: firewall, permissões de usuário (tanto na rede como no servidor) ou as configurações de rede do sql. Para configurar a rede, vá até o Surface Area (lá encontrará config. Pipe). -
(Resolvido) SQL Server 2008 R2 - Acesso ao Servidor
pergunta respondeu ao uLy- de fulvio em SQL Server
Boa tarde, A mensagem está um pouco turva, mas pelo que me parece o management não está conseguindo acessar o servidor. Pode ser o firewall, permissões de usuário (tanto na rede como no servidor) ou as configurações de rede do sql. -
Script - ver todas as tabelas em um banco de dados
pergunta respondeu ao honda86 de fulvio em SQL Server
Esta sintaxe é para Sql Server. Qualquer versão do sql executa este comando. -
Bom dia Micheli, você consegue logar no management studio com o usuário criado, ok? Onde você executa o aplicativo para testes? Na máquina onde está abrindo o management?
-
Bom dia Glaizan, Seja bem vindo ao Fórum!! O sql server 2005 dá problema na instalação com o win7 mesmo... :.( Dê uma olhada no Fórum, pois existem vários tópicos a respeito deste assunto.
-
Bom dia Drandrão, O erro está ocorrendo porque o sql está entrando em uma recursividade infinita. Se quiser trazer os resultados navegando em uma árvore, terá que utilizar um loop.
-
Transferindo dados de uma tabela para outra
pergunta respondeu ao leschina de fulvio em Demais Bancos
Ok, vou mover o tópico para: Fórum Script Brasil > Banco de Dados > Demais Bancos -
Transferindo dados de uma tabela para outra
pergunta respondeu ao leschina de fulvio em Demais Bancos
Bom dia Leschina, Qual o banco de dados q está utilizando? As tabelas estão no mesmo banco?