Jump to content

Hugo Anselmo

Members
  • Content count

    38
  • Joined

  • Last visited

Community Reputation

4 Comum

2 Followers

About Hugo Anselmo

  • Birthday 04/11/1984

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Sorocaba

Contato

  • Site Pessoal
    https://www.facebook.com/desenvolvimentodesistemas
  1. Hugo Anselmo

    SELECT 3 TABELA (acho)

    Tente isso select p.nome as Cliente, j.nome as Jogo from aluguel as a left join cliente as c on a.cod_cliente=c.cod_cliente left join pessoas as p on c.cod_pessoa=p.cod_pessoa left join jogo as j on a.cod_jogo=j.cod O ideal é você tirar as dúvidas em sala de aula pois aprenderá mais do que pegar resultado pronto em fóruns.
  2. Hugo Anselmo

    SQL management studio 2008 error: servidor inacessivel

    Pode ser várias coisas mas primeiro veja se o serviço não está estopado. Você já usava o servidor em questão ou é uma nova instalação do SQL?
  3. Hugo Anselmo

    Consulta UNION, GROUP BY e COUNT na mesma query

    A questão é que em consultas complexas como essa eu costumo simplificar com tabela temporária. Faça 3 selects apartados para cada situação, em cada um deles insira o resultado numa tabela temporária e depois faça o select na tabela temporária, descomplicado. Eu não estou na minha máquina por isso montei o select no bloco de notas, caso dê erro verifique o where de cada select que o problema estará lá. Se não entendeu mande MP. IF OBJECT_ID('tempdb..#temp') IS NOT NULL DROP TABLE #temp select Cliente.Cliente as Cli, Municipios.Nome as Cidade, Estado.Sigla as Estado, count(prt.Id) as TOTAL, IIF(count(prt.Id) > 0,'ATIVOS','INATIVOS') as status into #temp from (((( dbo.Cliente Cliente left join dbo.Pedidos prt on (prt.ClienteId = Cliente.Id)) left join dbo.Logradouro Logradouro on (Logradouro.Id = Cliente.Logradouro01Id)) left join dbo.Municipios Municipios on (Municipios.Id = Logradouro.MunicipioId)) left join dbo.Estado Estado on (Estado.Id = Municipios.EstadoId)) where prt.ClienteId is null and Cliente.IsConveniado = 1 GROUP BY Cliente.Nome, Municipios.Nome, Estado.Sigla go insert into #temp (cli, cidade, estado, total, status) select Cliente.Cliente as Cli, Municipios.Nome as Cidade, Estado.Sigla as Estado, count(prt.Id) as TOTAL, IIF(count(prt.Id) > 0,'ATIVOS','INATIVOS') as status from (((( dbo.Cliente Cliente left join dbo.Pedidos prt on (prt.ClienteId = Cliente.Id)) left join dbo.Logradouro Logradouro on (Logradouro.Id = Cliente.Logradouro01Id)) left join dbo.Municipios Municipios on (Municipios.Id = Logradouro.MunicipioId)) left join dbo.Estado Estado on (Estado.Id = Municipios.EstadoId)) where Cliente.IsConveniado=1 and NOT EXISTS (SELECT NULL FROM dbo.Pedidos p WHERE p.ClienteId = Cliente.Id AND (convert(date,p.Cadastro) BETWEEN '01/09/2015' and '09/09/2015' ) GROUP BY Cliente.Nome, Municipios.Nome, Estado.Sigla go insert into #temp (cli, cidade, estado, total, status) select Cliente.Cliente as Cli, Municipios.Nome as Cidade, Estado.Sigla as Estado, count(prt.Id) as TOTAL, IIF(count(prt.Id) > 0,'ATIVOS','INATIVOS') as status from (((( dbo.Cliente Cliente left join dbo.Pedidos prt on (prt.ClienteId = Cliente.Id)) left join dbo.Logradouro Logradouro on (Logradouro.Id = Cliente.Logradouro01Id)) left join dbo.Municipios Municipios on (Municipios.Id = Logradouro.MunicipioId)) left join dbo.Estado Estado on (Estado.Id = Municipios.EstadoId)) where (convert(date,prt.Cadastro) BETWEEN '01/09/2015' and '09/09/2015' and Cliente.IsConveniado = 1 and prt.Inativo = 0 ) GROUP BY Cliente.Nome, Municipios.Nome, Estado.Sigla go select * from #temp Perdoe-me se entendi mal mas se entendi corretamente é exatamente dessa forma que eu faria para fugir de subquery e union.
  4. Hugo Anselmo

    Sistema de Estocagem

    Envie suas queries para analisarmos, só assim poderemos entender o que elas fazem de fato.
  5. Hugo Anselmo

    Adicionar valor de variavel em campo DATETIME com BETWEEN

    Já tentou usar a função NOW() ?? Como "pelo que entendi" você quer a data atual, essa função retorna data/hora atual.
  6. Hugo Anselmo

    Where

    Você precisará usar o join. Qual o campo da tabela pago que faz ligação com a tabela contasapagar ? Use esse campo no join, darei um exemplo abaixo. Substitua o trecho c.chave=p.chave ("SELECT c.dataparcela, sum(c.valordoc), p.pago FROM contasapagar as c left join pago as p on c.chave=p.chave WHERE c.dataparcela >= '$DataInicial' AND c.dataparcela <= '$DataFinal' AND c.pago='naopago'");
  7. Hugo Anselmo

    Problema para colocar LEFT JOIN em SQL

    Eu faria assim: SELECT o.*, p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.* FROM paciente p LEFT JOIN outros_exames o ON p.codigo = o.paciente LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente WHERE o.hemodinamica = 'S' AND o.data between '2015-01-01' AND '2015-08-01' ORDER BY o.codigo Confira se não dará erro?
  8. Hugo Anselmo

    Delete INNER JOIN não funciona

    #deletar é uma tabela temporária, essa tabela existirá enquanto a sessão que a criou estiver aberta, depois que você fechar a sessão a tabela será destruída. Quando você roda a query a primeira vez a tabela é criada, se executar a segunda vez na mesma sessão vai dar erro porque a tabela já existe, para executar a segunda vez sem dar esse erro inclua essa linha no começo da query. IF object_id('tempdb..#deletar') IS NOT NULL BEGIN DROP TABLE #deletar END Explicando a query num todo: Primeiro foi feito um select para buscar os dados que você precisa e amarzená-lo numa tabela temporária, depois um delete na tabCURSOS usando os dados que ficaram guardados na temporária e por ultimo outro delete, agora na ModulosCodCurso. Pelo pouco conhecimento que tenho com o ASP sei que é perfeitamente possível usar Begin Transaction, mas para te dizer como isso é feito eu não sei, teria que consultar a documentação da linguagem para saber como a query ficaria.
  9. Hugo Anselmo

    Delete INNER JOIN não funciona

    Esse delete apagará apenas os registros da tabCURSOS, vamos pensar na lógica da query. Na query será listados os cursos que estiverem na tabela Modulos (cursos sem modulo serão desprezados) e depois esses cursos serão deletados. O join serve apenas para forçar os cursos que tiverem modulos e não para apagar dados da tabela Modulos. A solução para o seu caso seria pegar todos os M.ModulosCodCurso do resultado desse delete (antes de deletar senão você perderá a referencia) e deletá-los na Modulos também. Existem várias maneiras de fazer isso, te mostrarei a mais simples e de fácil entendimento. SELECT C.SisCursoCod as chave into #deletar FROM tabCURSOS AS C INNER JOIN Modulos AS M ON C.SisCursoCod = M.ModulosCodCurso WHERE C.SisCursoCod = '1' AND M.ModulosCodCurso = '1' (informando a chave estrangeira da segunda tab) GO DELETE tabCURSOS FROM tabCURSOS AS C INNER JOIN #deletar AS D ON C.SisCursoCod = D.chave GO DELETE M.ModulosCodCurso FROM Modulos as M INNER JOIN #deletar AS D ON M.ModulosCodCurso = D.chave Repito, há outras formas de fazer isso e eu mesmo não faria assim porque sempre que trabalho com Update, Insert e Delete eu inicio uma transação com o BEGIN TRANSACION, executo a query, confiro se o resultado foi o esperado e depois confirmou ou cancelo (COMMIT ou ROLLBACK), crie o hábito de fazer isso também pois evita muitos transtornos.
  10. Hugo Anselmo

    Adicionando um Hífen em todos os Cep

    Faço minha as palavras do Motta, evite ao máximo que puder rodar update desse tipo pois não são tão necessários. Deixe os dados como estão e acrescente hífen na consulta: select substring(cep,1,5) +'-' + substring(cep,6,3)as cep Se preferir para não ficar formatando em todas as consultas basta criar uma função para isso: create function formatacep(@cep char(8)) returns char(9) as begin declare @retorno varchar(9) set @retorno = substring(@cep,1,5) + '-' + substring(@cep,6,3) return @retorno end E sempre que precisar usar o campo cep nas suas consultas chame a função assim: select dbo.formatacep(@cep) as cep
  11. Hugo Anselmo

    Distinct com left join

    Tenta assim: SELECT MAX(v.IdCadVaga)as IdCadVaga, e.IDEmpresa, v.Empresa, v.QtdVagas, v.Liberado, v.DataCadastro, v.DataUpdate, c.ValorTotalAPagar, c.ValorPagoEmpresa, c.idCobrancaEmpresa FROM tblCadastro_Vaga_Incompleto v INNER JOIN tblEmpresa e ON e.CNPJ = v.CNPJ LEFT JOIN tblCobrancaEmpresa c ON c.idEmpresa = e.idEmpresa AND ( (MONTH(CONVERT(Date,v.DataCadastro,103)) <= MONTH(CONVERT(Date,c.DataCadastro,103)) AND YEAR(CONVERT(Date,v.DataCadastro,103)) = YEAR(CONVERT(Date,c.DataCadastro,103)) ) OR ( (MONTH(CONVERT(Date,v.DataUpdate,103)) = MONTH(CONVERT(Date,c.DataPagamentoEmpresa,103)) AND YEAR(CONVERT(Date,v.DataUpdate,103)) = YEAR(CONVERT(Date,c.DataPagamentoEmpresa,103)))) ) AND c.Status = 'PAGO' AND c.TipoCobranca <> 'ADM + SEG' AND c.TipoCobranca <> 'SEG' WHERE v.Excluido = 'N' AND ( (v.Liberado = 1 AND v.TipoServico IN (1,10,13) AND CONVERT(DateTime,v.DataCadastro,103) <= GETDATE()-62 AND MONTH(CONVERT(Date,v.DataCadastro,103)) = 5 AND YEAR(CONVERT(Date,v.DataCadastro,103)) = 2015 ) OR (v.Liberado NOT IN (0,1) AND MONTH(CONVERT(Date,v.DataUpdate,103)) = 7 AND YEAR(CONVERT(Date,v.DataUpdate,103)) = 2015 ) ) GROUP BY e.IDEmpresa, v.Empresa, v.QtdVagas, v.Liberado, v.DataCadastro, v.DataUpdate, c.ValorTotalAPagar, c.ValorPagoEmpresa, c.idCobrancaEmpresa ORDER BY v.IdCadVaga ASC
  12. 1º - passo trocar isso - se(media<5)entao por isso - se(media>0)e(media<5)então 2º - passo trocar isso - se(media>8)entao por isso - se(media>8)e(media<10)entao 3º - passo depois do - escreval("excelente") acrescente - se (media<=0)e(media>=10)escreval("sua nota foi insuficiente")fimse Não sei o que deve ser feito caso a nota seja <0 ou maior que 10 por isso você escolhe o que fazer mudando o escreval da ultima linha
  13. Hugo Anselmo

    Vagas - Trabalho voluntário

    Enviei email para o endereço citado.
  14. Hugo Anselmo

    Quanto vocês cobram para fazer uma macro?

    Preciso saber mais detalhes, você precisa se logar nesses sites? Me passe detalhes no bate papo do Facebook da minha página (endereço na minha assinatura).
  15. Hugo Anselmo

    Conexão com vários bancos de dados

    Só uma sugestão, entendo que o site esteja pronto e rodando por isso essa sugestão será um pouco impossível de colocar em prática mas se puder mude essa estrutura porque se você tiver 1 milhão de usuários terá 1 milhão de tabelas, organize seus usuários numa única tabela, tem como criar tabelas auxiliares mas se no final você tiver 2 ou 4 tabelas e 1 milhão de registros nela será melhor . Ademais isso você entendeu minha logica acima quando sugeri uma subquery no from pegando o nome das tabelas com o show tables ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.