none
Cte Ajuda. RRS feed

  • 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.

    sexta-feira, 14 de agosto de 2015 12:27

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]

    sexta-feira, 14 de agosto de 2015 18:38
  • Oi junior,

    posso fazer isso na aplicação sem problema, preciso mesmo é de realizar esse filtro. teria como me ajudar ??

    Att, wsti.

    sexta-feira, 14 de agosto de 2015 18:45
  • 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]

    sábado, 15 de agosto de 2015 01:09
  • 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.

    sábado, 15 de agosto de 2015 12:12
  • 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]

    quarta-feira, 19 de agosto de 2015 16:06