Inquiridor
Cte Ajuda.

Pergunta
-
fala pessoal, estou precisando de uma ajuda aqui. possuo 2 tabelas uma de controle que cadastro uma peça e seus controles.
exemplo id 10, disco de freio , serial XXXX , VidaLimite 10.000 km , Km 0 , placa XXXXXX.
id 40, pastilha de freio , serial xxx1, VidaLimite 5.000km, km 0 , placa XXXXXX.
preciso de um controle de pai e filho então
montei uma tabela bem simples onde tenho a placa | pai | filho
onde gravo placa XXXXX| pai 10 | filho null
placa XXXXX | pai 10 | filho 40 então a pastilha é filha do disco de freio .
o que estou tentando fazer é criar uma consulta que me retorne esta sequencia assim :
Disco de freio | serial XXXXXX | pai( caixa Alta)
pastilha de freio | serial XXXX1 | filho( caixa baixa em vermelho)
linha em branco
e outro resultado ..
não sei se é possivel fazer isso direto no T.sql
;with comp as(select pnp,descr,id_suP,Serial,id_ae,Ativo,id_CC from Tbl_CompCONTROLE where Ativo = 'A' group by id_ae), Are as ( select pref,id_ae from Tbl_er where id_ae = '2' group by id_ae), Hered as ( select idAe,pai,filho from Tbl_compContrHereditario where idAe = '2' group by idAe) select pai = case when H.Seq =1 then ISNULL ('') end, id_CC, pnp,descr, Serial,-- campos que eu preciso) from comp as C full outer join Are as A on C.id_ae = A.id_ae where C.Ativo = 'A'
desde já agradeço quem puder ajudar.
Todas as Respostas
-
Wsti,
Você deseja concatenar uma linha em branco no resultado do seu Select? Talvez seja o caso de você pensar no agrupamento destes dados e até mesmo fazer uso do Grouping Sets!!!!
Não sei se é isso, mas sinceramente acho estranho adicionar uma linha em branco no resultado, talvez isso você possa fazer na sua aplicação.
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
WSTI,
Então, posso sim, como esta definida a estrutura de ambas as tabelas? Você declarou um relacionamento entre elas?
De que forma você esta tentando fazer o Join entre estas tables?
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Então Junior, tenho uma tabela na qual gravo os controles de determinadas peças( Tbl_CompCONTROLE) , preciso fazer uma classificação de pai e filho, dai criei uma nova tabela (Tbl_compContrHereditario) que possui somente um Fk do registro e gravo nela os identificadores.
(Tbl_compContrHereditario)
inseri os campos filho e pai que são um char(1), achei que ficaria mais fácil de filtrar. nesse cenário ai verificaria a seguinte situação o 1 registro é Pai ( p_IdSup = 616) , 2 registro o 616 é filho do 22 , no 3 registro o 15 é filho do 22 , no 4 registro tenho o registro que o 22 é pai .
Tbl_CompCONTROLE
olhando a tabela acima o campo id_suP são os campos que foram gravados na tabela (Tbl_compContrHereditario)
o que estou tentando fazer é listar os registros da tabela Tbl_CompCONTROLE que atendam as seguintes condições.
select pnp,descr,id_suP,Serial,id_ae,Ativo,id_CC from Tbl_CompCONTROLE where Ativo = 'A'
e listar o registro pai como UPPER e os filhos desse registro como LOWER.
desde ja agradeço a sua ajuda.
att, wsti.
-
WSTI,
Se eu entendi bem, você já tem os dados armazenados na mesma tabela? É isso?
O uso do Upper() e Lower() seria somente para diferenciar os valores? Se for isso basta fazer a declaração destas respectivas colunas.
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]