Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Com Sintaxe


DackAle

Pergunta

E ae galera

Seguinte um cara começou um sistema a uns 2 anos, terminou e agora o sistema em ASP + SQL Server está precisando de suporte e sobrou pra mim =P

Tipo, boa parte do código entendi... mas to com algumas dúvidas

SQL = "select " _ 
	& " viewSuporteCompraCliente.cd_cliente, " _
	& " viewSuporteCompraCliente.nm_cliente, " _
	& " viewSuporteCompraCliente.cd_compra,  " _
	& " count(links_renovacao.cd_compra) as envios, " _
	& " status =  " _
  & " CASE  " _
  	& " WHEN datediff(month, tb_envio_assinatura.dt_envio,  dt_publicacao) > 3 THEN 'finalizada.gif' " _
  	& " WHEN count(links_renovacao.cd_compra) = 0 THEN 'inexistente.gif' " _
  	& " WHEN count(renovacao_compra.cd_compra_ant) > 0 THEN 'enviada.gif' " _
  	& " ELSE 'pendente.gif' " _
  & " END " _
	& " from tb_newsletter, tb_envio_assinatura, dbo.viewSuporteCompraCliente left outer join " _
	& " links_renovacao on links_renovacao.cd_compra = viewSuporteCompraCliente.cd_compra " _
	& " left outer join renovacao_compra on renovacao_compra.cd_compra_ant =  links_renovacao.cd_compra  " _
	& " where viewSuporteCompraCliente.qt_envio = 6 AND " _
	& " tb_newsletter.dt_publicacao = (SELECT max(dt_publicacao) from tb_newsletter) AND " _
	& " tb_envio_assinatura.dt_envio = (SELECT max(dt_envio) from tb_envio_assinatura WHERE cd_compra = viewSuporteCompraCliente.cd_compra) AND " _
	& " tb_envio_assinatura.cd_compra = viewSuporteCompraCliente.cd_compra " _
	& " group by  " _
	& " links_renovacao.cd_compra,  " _
	& " viewSuporteCompraCliente.cd_cliente, " _
	& " viewSuporteCompraCliente.nm_cliente, " _
	& " viewSuporteCompraCliente.cd_compra, " _
	& " viewSuporteCompraCliente.qt_envio, " _
	& " dt_publicacao, " _
	& " tb_envio_assinatura.dt_envio " _
	& " order by status DESC "

Essa tabela "viewSuporteCompraCliente" NÃO existe, ela é uma tabela temporaria por exemplo ? e a tal "dt_publicacao" que esta no group by, TAMBEM não existe mellow.gif o que seria ela ?

o group by seria +/- um order by ? peguei dois livros de sql e foi o que entendi hahuahua o foda é que vou ter que refazer tudo isso por causa de um resultado errado :cry: ai ai

Se alguém puder me dar uma ajuda fico grato

Abraços

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

E ae galera

Seguinte um cara começou um sistema a uns 2 anos, terminou e agora o sistema em ASP + SQL Server está precisando de suporte e sobrou pra mim =P

Tipo, boa parte do código entendi... mas to com algumas dúvidas

SQL = "select " _ 
	& " viewSuporteCompraCliente.cd_cliente, " _
	& " viewSuporteCompraCliente.nm_cliente, " _
	& " viewSuporteCompraCliente.cd_compra,  " _
	& " count(links_renovacao.cd_compra) as envios, " _
	& " status =  " _
  & " CASE  " _
  	& " WHEN datediff(month, tb_envio_assinatura.dt_envio,  dt_publicacao) > 3 THEN 'finalizada.gif' " _
  	& " WHEN count(links_renovacao.cd_compra) = 0 THEN 'inexistente.gif' " _
  	& " WHEN count(renovacao_compra.cd_compra_ant) > 0 THEN 'enviada.gif' " _
  	& " ELSE 'pendente.gif' " _
  & " END " _
	& " from tb_newsletter, tb_envio_assinatura, dbo.viewSuporteCompraCliente left outer join " _
	& " links_renovacao on links_renovacao.cd_compra = viewSuporteCompraCliente.cd_compra " _
	& " left outer join renovacao_compra on renovacao_compra.cd_compra_ant =  links_renovacao.cd_compra  " _
	& " where viewSuporteCompraCliente.qt_envio = 6 AND " _
	& " tb_newsletter.dt_publicacao = (SELECT max(dt_publicacao) from tb_newsletter) AND " _
	& " tb_envio_assinatura.dt_envio = (SELECT max(dt_envio) from tb_envio_assinatura WHERE cd_compra = viewSuporteCompraCliente.cd_compra) AND " _
	& " tb_envio_assinatura.cd_compra = viewSuporteCompraCliente.cd_compra " _
	& " group by  " _
	& " links_renovacao.cd_compra,  " _
	& " viewSuporteCompraCliente.cd_cliente, " _
	& " viewSuporteCompraCliente.nm_cliente, " _
	& " viewSuporteCompraCliente.cd_compra, " _
	& " viewSuporteCompraCliente.qt_envio, " _
	& " dt_publicacao, " _
	& " tb_envio_assinatura.dt_envio " _
	& " order by status DESC "

Essa tabela "viewSuporteCompraCliente" NÃO existe, ela é uma tabela temporaria por exemplo ? e a tal "dt_publicacao" que esta no group by, TAMBEM não existe  mellow.gif o que seria ela ?

o group by seria +/- um order by ? peguei dois livros de sql e foi o que entendi hahuahua o foda é que vou ter que refazer tudo isso por causa de um resultado errado  :cry:  ai ai

Se alguém puder me dar uma ajuda fico grato

Abraços

Olá darkAle,

A viewSuporteCompraCliente realmente não é uma tabela, é uma view ou seja um filtro de uma tabela veja um exemplo:

Existe a tabela Funcionario(cod,nome,endereco,salario), só que outros usuários utilizam essa mesma tabela para pegar os dados deles, mas esses usuários n precisam saber o quanto cada um ganha, então eu crio uma view apartir dessa tabela:

Create view view_func as

select cod, nome, endereco from funcionarios

pronto, apartir daí eu posso utilizar a view tranquilamente veja:

select nome from view_func - Esse comando executa a view que vai lá na tab funcionarios e dá o select, entendeu???

Se você for pelo Enterprise Mananger e abrir o banco, vá em view e você verá essa viewSuporteCompraCliente

ou então dá um select no sysobjects:

Select name from sysobjects - E procura a view lá

ou

Select * from sysobjects where name = 'viewSuporteCompraCliente'

beleza??

Agora o group by serve para agrupar valores que se repetem ex:

select cidade from Funcionario GROUP BY cidade

isso faz com que seja exibida todas as cidades que estão no banco sem se repetir (agrupadas)

Sempre que você utilizar alguma cláusula no select ( count, sum, avg, max...) você terá que utilizar o group by.

Entendeu???

Abraços

Lisandro Oliveira

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...