Ir para conteúdo
Fórum Script Brasil

Vinicius Schuh

Membros
  • Total de itens

    82
  • Registro em

  • Última visita

Tudo que Vinicius Schuh postou

  1. Vinicius Schuh

    Converssao

    Bom dia, ontem acabei tendo que sair e não pude terminar de responder... Como falei anteriormente, se você não quer retornar de algum campo, e sim a data atual, faça o seguinte script: SET LANGUAGE Brazilian SELECT DATENAME(WEEKDAY, GETDATE()) + ', ' + CONVERT(VARCHAR(02), DATEPART(DAY, GETDATE())) + ' De ' + DATENAME(MONTH, GETDATE()) + ' de ' + CONVERT(VARCHAR(04), DATEPART(YEAR, GETDATE())) + '.' Espero ter ajudado <_<
  2. Vinicius Schuh

    Converssao

    Boa Tarde Pizero, antes de tudo, você quer exibir a data por extenso de um determinado campo de uma tabela, ou a data do micro? Caso seja de algum campo de uma tabela, tente isso: SELECT DATENAME(WEEKDAY, CAMPO) + ', ' + CONVERT(VARCHAR(02), DATEPART(DAY, CAMPO)) + ' De ' + DATENAME(MONTH, CAMPO) + ' de ' + CONVERT(VARCHAR(04), DATEPART(YEAR, CAMPO)) + '.' FROM TABELA Caso retorne em INGLÊS, antes do SELECT coloque a seguinte linha: SET LANGUAGE Brazilian Espero ter ajudado, qualquer coisa posta. Valeu
  3. Fulvio do céu, tava feliz já quando falei que ia parar de te encomodar né? rsrsrs Mas parçeiro, não está fácil de fazer funcionar 100% esse script. Agora me deparei com a seguinte situação, se eu tenho apenas orçamentos em ABERTO ou apenas FECHADOS, tranquilo Mas caso eu tenha as duas situações ocorre o seguinte erro: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. (1 row(s) affected) eu adicionei mais uma variável para realizar a soma dos orçamentos em aberto e fechado, segue script: USE Local_28 GO Declare @Aberto int, @Fechado int, @ID_Func int, @NM_Func varchar(40), @Mes int, @NM_Mes varchar(15), @DT_Imp varchar(30), @Total numeric SELECT @Aberto = (SELECT Case When NO_Venda Is Null Then Count(CódigoDoFuncionário)When NO_VENDA Is Null Then 0 End FROM dbo.Orçamento GROUP BY no_venda), @Fechado = (Select Case When NO_Venda Is Not Null Then Count(CódigoDoFuncionário) When NO_VENDA IS NULL THEN '0' End FROM dbo.Orçamento GROUP BY no_venda), @ID_Func = dbo.Orçamento.CódigoDoFuncionário, @NM_Func = dbo.Funcionários.NomeDoFuncionário, @Mes = Month(dbo.Orçamento.DataDoOrçamento), @NM_Mes = Case Month(dbo.Orçamento.DataDoOrçamento) When '1' Then 'JANEIRO' When '2' Then 'FEVEREIRO' When '3' Then 'MARÇO' When '4' Then 'ABRIL' When '5' Then 'MAIO' When '6' Then 'JUNHO' When '7' Then 'JULHO' When '8' Then 'AGOSTO' When '9' Then 'SETEMBRO' When '10' Then 'OUTUBRO' When '11' Then 'NOVEMBRO' When '12' Then 'DEZEMBRO' End, @DT_Imp = GETDATE(), @Total = (@Fechado + @Aberto) FROM dbo.Orçamento INNER JOIN dbo.Funcionários On dbo.Orçamento.CódigoDoFuncionário = dbo.Funcionários.CódigoDoFuncionário GROUP BY Month(dbo.Orçamento.DataDoOrçamento), dbo.Funcionários.NomeDoFuncionário, dbo.Orçamento.CódigoDoFuncionário, NO_Venda ORDER BY dbo.Funcionários.NomeDoFuncionário, Month(dbo.Orçamento.DataDoOrçamento) SELECT @Aberto, @Fechado, @Total, @ID_Func, @NM_Func, @Mes, @NM_Mes, @DT_Imp É algo na parametrização do meu script? :(
  4. Boa tarde Fulvio, rapaz do céu tua paciência com nós amadores é divina. Quanto te devo? hehehe Muito obrigado mesmo, acredito que agora vou te dar sossego rs rs. Vou terminar meus testes e posto aqui. Aquele abraço
  5. Boa tarde Fulvio, e obrigado pela explicação, mas acho que ainda estou pecando em alguma coisa... rs :wacko: Fiz como você disse atribui os valores de retorno a variáveis, a query roda sem erro(Command(s) completed successfully.) mas não retorna nenhum valor... O que sera que estou fazendo de errado? Segue script. Declare @Aberto int, @Fechado int, @NM_Func varchar(40), @ID_Func int, @Mes int, @NM_Mes varchar(15), @DT_Imp varchar(30) SELECT @Aberto = (SELECT Case When NO_Venda Is Null Then Count(CódigoDoFuncionário)When NO_VENDA Is Null Then 0 End FROM dbo.Orçamento GROUP BY no_venda), @Fechado = (Select Case When NO_Venda Is Not Null Then Count(CódigoDoFuncionário) When NO_VENDA IS NULL THEN '0' End FROM dbo.Orçamento GROUP BY no_venda), @ID_Func = dbo.Orçamento.CódigoDoFuncionário, @NM_Func = dbo.Funcionários.NomeDoFuncionário, @Mes = Month(dbo.Orçamento.DataDoOrçamento), @NM_Mes = Case Month(dbo.Orçamento.DataDoOrçamento) When '1' Then 'JANEIRO' When '2' Then 'FEVEREIRO' When '3' Then 'MARÇO' When '4' Then 'ABRIL' When '5' Then 'MAIO' When '6' Then 'JUNHO' When '7' Then 'JULHO' When '8' Then 'AGOSTO' When '9' Then 'SETEMBRO' When '10' Then 'OUTUBRO' When '11' Then 'NOVEMBRO' When '12' Then 'DEZEMBRO' End, @DT_Imp = GETDATE() FROM dbo.Orçamento INNER JOIN dbo.Funcionários On dbo.Orçamento.CódigoDoFuncionário = dbo.Funcionários.CódigoDoFuncionário GROUP BY Month(dbo.Orçamento.DataDoOrçamento), dbo.Funcionários.NomeDoFuncionário, dbo.Orçamento.CódigoDoFuncionário, NO_Venda ORDER BY dbo.Funcionários.NomeDoFuncionário, Month(dbo.Orçamento.DataDoOrçamento)
  6. Bom dia mbarra14, você poderia usar o comando COUNT, ele ira contar quantos registros existem para uma determinada situação. Como você precisa saber quantas compras existiram para um determinado cliente, voce poderia realizar uma verificação com o comando CASE. Ex: SELECT . . . Total_Compras = Case When (compra.compra_id) THEN COUNT(cliente_id) End . . . Dessa forma, vai contar quantas compras o cliente em questão teve. Lembrando que é apenas uma idéia, você teria que realizar toda a estrutura do SELECT com seus respectivos campos, e ligações entre as tabelas. Espero ter ajudado, qualquer coisa posta. Aquele Abraço
  7. Boa tarde Fulvio, sem querer te "contrariar" mas já "contrariando" rs rs rs. Acredito que com variaveis ficaria mais fácil, pois apenas somaria o valor das mesmas. Mas... hehehe sempre tem um porém, tinha pensando de fazer uma subquery para realizar o cálculo de orçamento em aberto e fechado e posteriormente atribuir o valor dessa subquery as suas respectivas variaveis. Caso eu queira fazer com variável, como eu atribuo o valor de uma subquery a variavel? Ex: @Aberto = (SELECT Case When NO_Venda Is Null Then Count(CódigoDoFuncionário)When NO_VENDA Is Null Then '0' End FROM dbo.Orçamento GROUP BY no_venda)
  8. Bom dia amigo Fulvio. Eu tinha pensado em variaveis, teria como fazeR?
  9. Boa Tarde Fulvio eu tentei fazer com sub-query (SELECT Case When NO_Venda Is Null Then Count(Orçamento.CódigoDoFuncionário)) + (SELECT Case When NO_Venda Is Not Null Then Count(Orçamento.CódigoDoFuncionário)) Mas não funcionou :(
  10. Bom dia Amigos! Espero que todos tenham uma boa semana... Tenho a seguinte query: SELECT dbo.Funcionários.NomeDoFuncionário, Month(dbo.Orçamento.DataDoOrçamento) As Mes, NM_Mes = Case Month(dbo.Orçamento.DataDoOrçamento) When '1' Then 'JANEIRO' When '2' Then 'FEVEREIRO' When '3' Then 'MARÇO' When '4' Then 'ABRIL' When '5' Then 'MAIO' When '6' Then 'JUNHO' When '7' Then 'JULHO' When '8' Then 'AGOSTO' When '9' Then 'SETEMBRO' When '10' Then 'OUTUBRO' When '11' Then 'NOVEMBRO' When '12' Then 'DEZEMBRO' End, dbo.Orçamento.CódigoDoFuncionário, ABERTO = Case When NO_Venda Is Null Then Count(Orçamento.CódigoDoFuncionário)When NO_VENDA IS NULL THEN '0' End, FECHADO = Case When NO_Venda Is Not Null Then Count(Orçamento.CódigoDoFuncionário) When NO_VENDA IS NULL THEN '0' End, GETDATE() As DT_Imp FROM dbo.Orçamento INNER JOIN dbo.Funcionários On dbo.Orçamento.CódigoDoFuncionário = dbo.Funcionários.CódigoDoFuncionário GROUP BY Month(dbo.Orçamento.DataDoOrçamento), dbo.Funcionários.NomeDoFuncionário, dbo.Orçamento.CódigoDoFuncionário, NO_Venda ORDER BY dbo.Funcionários.NomeDoFuncionário, Mes Que ira me retornar, o número de Orçamentos ABERTOS e FECHADOS nos determinados meses. Preciso realizar o cálculo de quanto ira representar (Aberto e Fechado) em % (Percentual). Sei que para realizar tal cálculo, preciso pegar o total de ABERTOS ou FECHADOS multiplicar por 100 e dividir pelo total de Orçamentos(Soma Aberto e Fechado). A pergunta é, como poderia fazer para realizar a soma dos dois CASES que me trazem o total de orçamentos em ABERTO e FECHADO para ter o TOTAL GERAL? Desde já agradeço.
  11. Bom dia Fulvio, resolvi hehe. Mudei a parametrização da minha função DATEDIFF e fiz as verificações dos dias, que ficou dessa forma: DATEDIFF(Day, dbo.tblOrdens_servico.DT_Os, Case When (dbo.tblOrdens_servico.TP_Concluida = 1) then dbo.tblOrdens_servico.DT_Fechamento Else getdate() End) As Total_Dias, Abraços...
  12. Bom dia, é você está cérto e me ganhou rsrs Vou então reformular minha resposta, no MSDE 2000 roda :)
  13. Bom dia Fulvio, com o TOP 1 roda sem nenhum erro, mas os valores ficam todos duplicados :( (SELECT TOP 1(DATEDIFF(Day, DT_Os, GetDate())) FROM dbo.tblOrdens_Servico WHERE TP_Aberta = 1) As Aberto_Dias No meu caso retornou 1026 para todos os registros.
  14. Bom dia Fulvio, tenho o MSDE 2000 instalado na minha máquina mesmo e utilizo o Management hehe :)
  15. Boa tarde pessoal tenho o seguinte SQL: SELECT dbo.tblOrdens_servico.ID As OS, dbo.tblOrdens_servico.CD_Cliente, dbo.Clientes.NomeDoCliente, dbo.tblOrdens_servico.CD_Tecnico, dbo.Funcionários.NomeDoFuncionário, dbo.tblOrdens_servico.DT_Os As Abertura, dbo.tblOrdens_servico.DT_Fechamento As Fechamento, DATEDIFF(Day, dbo.tblOrdens_servico.DT_Os, dbo.tblOrdens_servico.DT_Fechamento) As Total_Dias, (Select DATEDIFF(Day, DT_Os, GetDate())from dbo.tblOrdens_Servico where TP_Aberta = 1) As Aberto_Dias, OS_Status = Case When (dbo.tblOrdens_Servico.TP_Aberta = 1) Then 'ABE' When (dbo.tblOrdens_Servico.TP_Andamento = 1) Then 'AND' When (dbo.tblOrdens_Servico.TP_Concluida = 1) Then 'FEC' End, dbo.tblOrdens_Servico.TP_Aberta, dbo.tblOrdens_Servico.TP_Andamento, dbo.tblOrdens_Servico.TP_Concluida FROM dbo.Clientes LEFT JOIN dbo.tblOrdens_servico On dbo.Clientes.CódigoDoCliente = dbo.tblOrdens_servico.CD_Cliente LEFT JOIN dbo.Funcionários On dbo.tblOrdens_servico.CD_Tecnico = dbo.Funcionários.CódigoDoFuncionário WHERE (dbo.Funcionários.NomeDoFuncionário Is Not Null) Se eu executo minha query, ela me retorna o seguinte erro: Msg 512, Level 16, State 1, Line 2 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. (0 row(s) affected) Mas, se eu removo a sub-query ele roda sem problemas ou se eu executo apenas a sub-query ele também roda. O que deixei passar para que não esteja rodando a query+sub-query? abraço
  16. Boa Tarde Fulvio, eu uso o MAnagement Studio no 2000 também. E roda 100% :lol:
  17. Boa Tarde Cesar. Eu particularmente gosto muito do SQL Server Management Studio é o gerenciador que mais uso, utilizo também um mais genérico que é o SQL Lite :D espero ter ajudado. Abç
  18. Boa tarde Rafael. Amigão esse problema é provavelmente causado por algum arquivo que está faltando, ou por você não ter acesso a tal arquivo, você realmente é Administrador dessa máquina que esta tentando instalar? Tente isso: Apague a pasta cache seguinte, e depois re-instale o SQL Server Express. % AppData% \ Microsoft_Corporation \ Local \ Abç.
  19. Bom dia Fulvio, mudei o relacionamento e consregui listas todos os clientes, apenas no meu relatório que não, mas agora é só uma questão de design mesmo. FROM dbo.Clientes LEFT JOIN dbo.tblAtendimento On dbo.Clientes.CódigoDoCliente = dbo.tblAtendimento.CD_Cliente LEFT JOIN dbo.tblClientes_grupos On dbo.Clientes.ID_Grupo = dbo.tblClientes_grupos.ID LEFT JOIN dbo.Funcionários On dbo.tblAtendimento.CD_Tecnico = dbo.Funcionários.CódigoDoFuncionário LEFT JOIN dbo.tblOrdens_servico On dbo.tblAtendimento.ID = dbo.tblOrdens_servico.ID_Atendimento Abraço
  20. Removi algumas funções que precisavam que fossem atribuídas ao GROUP BY e mudei os JOIN, mas não consegui ainda, Não ta fácil hehehe
  21. Boa Tarde Amigo Fulvio. Rodei aqui mas retornou a mesma coisa do SQL original Obg
  22. Bom dia Amigos, tenho o seguinte código SQL: SELECT dbo.tblClientes_grupos.NM As Grupo, dbo.tblAtendimento.CD_Cliente, dbo.Clientes.NomeDoCliente As Cliente, dbo.tblAtendimento.ID As Att, Month(dbo.tblAtendimento.DT_Atendimento) As Mes_Att, dbo.tblAtendimento.DT_Atendimento, NM_Att = Case Month(dbo.tblAtendimento.DT_Atendimento) When '1' Then 'JANEIRO' When '2' Then 'FEVEREIRO' When '3' Then 'MARÇO' When '4' Then 'ABRIL' When '5' Then 'MAIO' When '6' Then 'JUNHO' When '7' Then 'JULHO' When '8' Then 'AGOSTO' When '9' Then 'SETEMBRO' When '10' Then 'OUTUBRO' When '11' Then 'NOVEMBRO' When '12' Then 'DEZEMBRO' End, dbo.tblOrdens_servico.ID As OS, Month(dbo.tblOrdens_servico.DT_Os) As Mes_OS, dbo.tblOrdens_servico.DT_Os, NM_OS = Case Month(dbo.tblOrdens_servico.DT_Os) When '1' Then 'JANEIRO' When '2' Then 'FEVEREIRO' When '3' Then 'MARÇO' When '4' Then 'ABRIL' When '5' Then 'MAIO' When '6' Then 'JUNHO' When '7' Then 'JULHO' When '8' Then 'AGOSTO' When '9' Then 'SETEMBRO' When '10' Then 'OUTUBRO' When '11' Then 'NOVEMBRO' When '12' Then 'DEZEMBRO' End, Externo = Case (dbo.tblOrdens_servico.TP_Externo) When '1' Then 'X' End, Interno = Case (dbo.tblOrdens_servico.TP_Interno) When '1' Then 'X' End, ATT_Status = Case (dbo.tblAtendimento.TP_Status) When '1' Then 'ABE' When '2' Then 'AND' When '3' Then 'FEC' End, OS_Status = Case When (dbo.tblOrdens_Servico.TP_Aberta = 1) Then 'ABE' When (dbo.tblOrdens_Servico.TP_Andamento = 1) Then 'AND' When (dbo.tblOrdens_Servico.TP_Concluida = 1) Then 'FEC' End, ATT_AbertoTotal = Case When (dbo.tblAtendimento.TP_Status = 1 Or dbo.tblAtendimento.TP_Status = 2) Then Count(dbo.tblAtendimento.CD_Cliente) End, ATT_FechadoTotal = Case When (dbo.tblAtendimento.TP_Status = 3) Then Count(dbo.tblAtendimento.CD_Cliente) End, OS_AbertoTotal = Case When (dbo.tblOrdens_Servico.TP_Aberta = 1 Or dbo.tblOrdens_Servico.TP_Andamento = 1) Then Count(dbo.tblAtendimento.CD_Cliente) End, OS_FechadoTotal = Case When (dbo.tblOrdens_Servico.TP_Concluida = 1) Then Count(dbo.tblAtendimento.CD_Cliente) End, GETDATE() As DT_Imp FROM dbo.tblAtendimento INNER JOIN dbo.Clientes On dbo.tblAtendimento.CD_Cliente = dbo.Clientes.CódigoDoCliente LEFT JOIN dbo.tblClientes_grupos On dbo.Clientes.ID_Grupo = dbo.tblClientes_grupos.ID INNER JOIN dbo.Funcionários On dbo.tblAtendimento.CD_Tecnico = dbo.Funcionários.CódigoDoFuncionário LEFT JOIN dbo.tblOrdens_servico On dbo.tblAtendimento.ID = dbo.tblOrdens_servico.ID_Atendimento WHERE (dbo.tblAtendimento.CD_Cliente Is Not Null) And (dbo.Funcionários.NomeDoFuncionário Is Not Null) GROUP BY dbo.tblClientes_grupos.NM, dbo.tblAtendimento.CD_Cliente, dbo.Clientes.NomeDoCliente, dbo.tblAtendimento.ID, Month(dbo.tblAtendimento.DT_Atendimento), Month(dbo.tblOrdens_servico.DT_Os), dbo.tblOrdens_servico.ID, dbo.tblAtendimento.CD_Tecnico, dbo.tblOrdens_servico.TP_Externo, dbo.tblOrdens_servico.TP_Interno, dbo.tblAtendimento.DT_Atendimento, dbo.tblOrdens_servico.DT_Os, dbo.Funcionários.NomeDoFuncionário, dbo.tblAtendimento.TP_Status, dbo.tblOrdens_Servico.TP_Aberta, dbo.tblOrdens_Servico.TP_Andamento, dbo.tblOrdens_Servico.TP_concluida ORDER BY dbo.Clientes.NomeDoCliente asc, dbo.tblAtendimento.DT_Atendimento asc Onde, resumidamente, ira me listar as ordens de serviço(OS) e Atendimentos(ATT) que um determinado cliente possui no relatório... Até então, estava ok mas, preciso mostrar todos os clientes, indiferente se tem OS/ATT ou não, sei que com o inner join ele só me trás apenas os que tem OS/ATT vinculados, como poderia fazer para que me liste todos os clientes, se tem OS/ATT ou não? Obg
  23. Bom dia, tente o seguinte comando: SELECT campo1, campo2, COUNT(*) AS Duplicados FROM tabela GROUP BY campo1, campo2 HAVING (COUNT(*) > 1) abraço
  24. Bom dia amigo. Infelizmente o caminho de upgrade é via de mão única. Não é possível restaurar um backup em uma versão anterior, pois, há novas features, recursos e mudanças na estrutura de armazenamento. O SQL Server 2008 por exemplo trabalha com compactação e gasta alguns bits a mais nas páginas de dados para fazer isso. Como poderia o SQL Server 2005 interpretar tal situação ? Ele simplesmente não poderia... Não lhe resta opção senão exportar os dados (Generate SQL Script, Database Publishing Wizard e SSIS são ferramentas que podem auxiliá-lo). Cabe uma ressalva sobre o nível de compatibilidade. Essa característica é muito mal interpretada. Já vi muitas confusões sobre ela... Ele não é simplesmente um Save As 2005 ou Save As 2000. Ele simplesmente diz ao SGBD que a interpretação de comandos SQL será restrita ao nível selecionado. Colocar o modo de compatibilidade do 2008 para 2005 apenas dirá que aquele banco está pensando 2005 em termos de TSQL. Isso significa que você não poderá utilizar novos recursos de TSQL como o GROUPING SETs, múltiplos INSERTs no mesmo comando, etc. O resto continuará sendo 2008 e por isso não será possível em nenhuma hipótese restaurá-lo no 2005.
  25. Bom dia Rafael. Também tenho o Win7 e ele as vezes barra algumas instalações mesmo você sendo admin da maquina. Acesse "Contas de Usuário" e altere as configurações de segurança, dando permissão total para todos os usuários. Quando instalar o Sql Server numa máquina, preste atenção no nome que PC usa, pois se usuário usar o login(mesmo sendo Admin) com o mesmo nome da máquina, vai acontecer de você não conseguir instalar o Sql Server( vai dar erro de permissão!). Isso ocorreu porque geralmente quem usa um notebook, coloca o nome(o dono) no PC ,e também coloca o login com o mesmo nome. Verifique no diretório C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt é gravado log de instalação, geralmente o problema fica no final do log, poste aqui podera ajudar. Outra coisa: Baixe novamente o instalador do SQL, pode ser que você tenha algum arquivo corrompido! Abraço
×
×
  • Criar Novo...