Beta
Busca:   
Abril
DSTQQSS
1234567
891011121314
15161718192021
22232425262728
293012345


Projetos


Ligação entre o Avô e Netos

Ligação entre o Avô e Netos

Diminuir corpo de texto Aumentar corpo de texto
Por: Ruben Zevallos Jr.
Data de Publicação: 16 de abril de 2007

Com base no Pai
Com base no AvôNeste exemplo poderemos ver 2 exemplos, sendo que o primeiro está errado e a solução foi acertada na 2a ZTag

<ZTagSQL(10).HomeNoticias."PG.pagNome = 'Pensadores' AND PG.pagReferencia = 10 AND Pa.pagAtivo = 1"."CASE WHEN Pa.pagDataReferencia is null THEN Pa.pagInclusao ELSE Pa.pagDataReferencia END DESC, Pa.pagCodigo DESC">
Nesta ZTag, eu tenho o objetivo de ter todos os netos de um determinado nó... mas, está com problema mesmo, pois ele não consegue processar a integração entre o Avô e o Neto.

O Publicador não consegue processar devido a essa falta de inteligação entre o Avô e o Filho.

SQL resultado da execução
SELECT TOP 10 Pa.pagCodigo AS PapagCodigo
, PapagDataReferenciaDayFull = CASE
WHEN Pa.pagDataReferencia IS NULL THEN RIGHT('00' + CONVERT(varchar(2), Day(Pa.pagInclusao)), 2)
ELSE RIGHT('00' + CONVERT(varchar(2), Day(Pa.pagDataReferencia)), 2)
END
, PapagDataReferenciaMonthFull = CASE
WHEN Pa.pagDataReferencia IS NULL THEN RIGHT('00' + CONVERT(varchar(2), Month(Pa.pagInclusao)), 2)
ELSE RIGHT('00' + CONVERT(varchar(2), Month(Pa.pagDataReferencia)), 2)
END
, PapagDataReferenciaYearFull = CASE
WHEN Pa.pagDataReferencia IS NULL THEN RIGHT('0000' + CONVERT(varchar(4), Year(Pa.pagInclusao)), 4)
ELSE RIGHT('0000' + CONVERT(varchar(4), Year(Pa.pagDataReferencia)), 4)
END
,Pa.pagTipoAlternativo AS PapagTipoAlternativo
,Pa.pagAlternativo AS PapagAlternativo
, PapagTituloFlutuante = CASE
WHEN Pa.pagTituloFlutuante IS NULL OR Pa.pagTituloFlutuante !> '' THEN Pa.pagTitulo
ELSE Pa.pagTituloFlutuante
END
,Pa.pagTitulo AS PapagTitulo
,Pa.pagResumo AS PapagResumo
FROM pubPaginas Pa
LEFT JOIN pubPaginas PG ON PG.pagCodigo = PF.pagPai AND PG.pagAtivo = 1
WHERE PG.pagNome = 'Pensadores' AND PG.pagReferencia = 10 AND Pa.pagAtivo = 1
ORDER BY CASE WHEN Pa.pagDataReferencia is null THEN Pa.pagInclusao ELSE Pa.pagDataReferencia END DESC, Pa.pagCodigo DESC


<ZTagSQL(10).HomeNoticias."PG.pagNome = 'Pensadores' AND PG.pagReferencia = 10 AND PF.pagPai = PG.pagCodigo AND Pa.pagPai = PF.pagCodigo AND Pa.pagAtivo = 1"."CASE WHEN Pa.pagDataReferencia is null THEN Pa.pagInclusao ELSE Pa.pagDataReferencia END DESC, Pa.pagCodigo DESC">
Esta é a ZTag correta, onde eu inclui as referências de ligação entre o Avô e os netos, passando pelo Pai.

Solução:
AND PF.pagPai = PG.pagCodigo <-- Crio o vínculo entre o Pai e o Avô
AND Pa.pagPai = PF.pagCodigo <-- Crio o vínculo entre o Pai e o os filhos

SQL resultado da execuçãoSELECT TOP 10 Pa.pagCodigo AS PapagCodigo
, PapagDataReferenciaDayFull = CASE
WHEN Pa.pagDataReferencia IS NULL THEN RIGHT('00' + CONVERT(varchar(2), Day(Pa.pagInclusao)), 2)
ELSE RIGHT('00' + CONVERT(varchar(2), Day(Pa.pagDataReferencia)), 2)
END
, PapagDataReferenciaMonthFull = CASE
WHEN Pa.pagDataReferencia IS NULL THEN RIGHT('00' + CONVERT(varchar(2), Month(Pa.pagInclusao)), 2)
ELSE RIGHT('00' + CONVERT(varchar(2), Month(Pa.pagDataReferencia)), 2)
END
, PapagDataReferenciaYearFull = CASE
WHEN Pa.pagDataReferencia IS NULL THEN RIGHT('0000' + CONVERT(varchar(4), Year(Pa.pagInclusao)), 4)
ELSE RIGHT('0000' + CONVERT(varchar(4), Year(Pa.pagDataReferencia)), 4)
END
,Pa.pagTipoAlternativo AS PapagTipoAlternativo
,Pa.pagAlternativo AS PapagAlternativo
, PapagTituloFlutuante = CASE
WHEN Pa.pagTituloFlutuante IS NULL OR Pa.pagTituloFlutuante !> '' THEN Pa.pagTitulo
ELSE Pa.pagTituloFlutuante
END
,Pa.pagTitulo AS PapagTitulo
,Pa.pagResumo AS PapagResumo
FROM pubPaginas Pa
LEFT JOIN pubPaginas PF ON PF.pagCodigo = Pa.pagPai AND PF.pagAtivo = 1
WHERE Pa.pagAtivo = 1
AND Pa.pagReferencia = 8
ORDER BY CASE
WHEN Pa.pagDataReferencia is null THEN Pa.pagInclusao
ELSE Pa.pagDataReferencia
END
DESC, Pa.pagCodigo DESC, PF.pagNome, Pa.pagTitulo
Texto Anterior:
Ligação entre o Avô e Netos - Ligação entre o Avô e Netos
Próximo texto:
Ligação entre o Avô e Netos - Ligação entre o Avô e Netos
Índice da Edição - Dicas de Uso

Recomende esta página   Imprimir esta página

Links Patrocinados

© 2002 - 2007 Por Ruben Zevallos Jr.® alguns direitos reservados.
Declaração:
O conteúdo deste site, inclusive os textos, são pessoais e fundamentados exclusivamente nas experiências do Autor; não devendo portanto serem vistos e nem utilizados como orientação ou tratamento psicológico, terapêutico, psiquiátrico ou semelhante. A leitura, uso e indicação, em parte ou na totalidade, bem como as conseqüências ou resultados práticos pela utilização do mesmo, é de inteira responsabilidade do Leitor. Ao Autor não cabe nenhuma atribuição Legal por quaisquer alterações emocionais, intelectuais, sexuais ou de personalidade, ocorridas após a leitura dos textos aqui postados.


Termos de Uso - Privacidade - Alerta - Informar Bug - Acessibilidade

Todo o conteúdo poderá ser copiado desde que devidamente identificado com a origem.

Sendo o nome do autor e com o endereço http://ruben.zevallos.com.br.

Creative Commons
Creative Commons


Alguns direitos reservados

Processada em 0.500s
Brasil
Aprovado - Acessibilidade Brasil
NAC: C976D GKG2G
Veja meus vizinhos na Internet
Valid XHTML 1.1
Valid CSS!
Any Browser
WeZ Stats