none
URGENTE CONSULTA INNE JOIN RRS feed

  • Pergunta

  • Ola pessoal estou precisando de uma ajuda urgente..

    seguinte estou montando um menu como o do submarino.. ou seja..

    informatica
      >> Monitores
              >> LCD
                      >> 19 polegada
                      >>  17 polegada

             >>CRT
                     >> 19 polegada
                     >> 17 polegada


    mais isso tudo numa mesma pagina , em um  menu mesmo

    tenho as seguinte tabelas.

    Categoria
    Sessoes
    Subcategoria
    Item_Subcategoria

    na tabela Categoria tenho o valor Informatica
    na Sessoes tenho o valor Monitores
    na Subcategoria tenho o valor LCD
    na Item_Subcategoria tenho o valor 19 polegada , 17 polegada.

    estrutura da tabela.

    categoria : idcategoria
    Sessoes: idsessao, idcategoria
    Subcategoria: idsubcat, idsessao
    item_Subcategoria: iditem, idsubcat

    ai vem minha consulta SP

    SELECT  categoria.idcategoria, categoria.nome as nomecat, sessoes.idsessao,sessoes.nome,
    subcategoria.idsubcat,subcategoria1.nomesubcat,
    itens_subcategoria.nome as nomeitem

    FROM         categoria INNER JOIN
                          sessoes ON categoria.idcategoria =
                        sessoes.idcategoria INNER JOIN
    subcategoria on sessoes.id = subcategoria.idsessao INNER JOIN
    itens_subcategoriason itens_subcategorias.idsubcat = subcategorias.idsubcat
    where categoria.idcategoria = 1 order by sessoes.nome

     como isso eu consigo retornar aqueles campos la em cima, mais nao daquela maneira , essa consulta se repete os dados. fica mais ou menos assim, ai em baixo eu só coloquei um exemplo de como fica, mais na verdade ele repete informatica, monitores. LCD um monte vezes.  alguem sabe como resolver isso, distinct ja fiz, tentei tratar isso na propria app usando datareader mais sem sucesso. alguem sabe uma solução para isso? na propria SP?

    informatica

      >> Monitores
              >> LCD
                      >> 19 polegada
                      >>  17 polegada
         Monitores
              >> LCD
                      >> 19 polegada
                      >>  17 polegada

    Monitores
              >> LCD
                      >> 19 polegada
                      >>  17 polegada

             >>CRT
                     >> 19 polegada
                     >> 17 polegada

    quarta-feira, 17 de outubro de 2007 05:28

Todas as Respostas

  •  

     

    acho que o problema deve ser esse:

     

    Subcategoria: idsubcat, idsessao
    item_Subcategoria: iditem, idsubcat

     

    o idsubcat

     

    quandos itens tem na sua tabela item_subcategoria com o idsubcat ?, o relacionamento com a subcategoria e de 1-1 ?

     

    Abs;

    quarta-feira, 17 de outubro de 2007 10:32
  • Lourival,

     

    Concordo com o Marcelo, dividindo em subcategorias vai facilitar para montar o relacionamento.

    quarta-feira, 17 de outubro de 2007 11:06
  • Oi Marcelo,  o relacionamento é do tipo 1:n,  na tabela item_subcategoria tenho os valores 19 polegada, 17 polegada, na qual pertence a subcategoria LCD que esta dentro da sessao Monitores..  o que faço? estou perdido..
    quarta-feira, 17 de outubro de 2007 12:01
  • Lourival,

     

    Deixa eu ver se entendi:

     

    Tabela Item_SubCategoria --> 19 e 17 polegadas.

     

    A subcategoria LCD esta dentro de outra table?

    quarta-feira, 17 de outubro de 2007 12:20
  • Oi Junior brigado kra, olha só, 

     categoria: Informatica

    Sessoes: Monitores

    Subcategoria: LCD, TELA PLANA

    Item_subcategoria:  17 Polegada , 19 polegada etc.. ficando assim.

    O kra clica em informatica ai listar a sessao as subcategorias e itens assim:

    Informatica
      >> Monitores
         >> LCD
             >> 17 polegada
             >> 19 polegadas

        >> CRT
             >> 19 polegada
              >> 17 polegada 

    A subcategoria LCD, esta relacionada com a sessao, ou seja, monitores, nao sei se deu pra entender?

    LCD esta dentro de outra table sim.. fiz uma table pra cada.

    quarta-feira, 17 de outubro de 2007 12:32
  • Lourival,

     

    Você possui então várias tabelas relacionadas, todas possuem chave estrangeira, ou esta relacionamento na verdade não é um relacionamento físico mais sim lógico.

    quinta-feira, 18 de outubro de 2007 16:52
  • Veja se este exemplo pode te ajudar:

     

    Code Block

    Create Table #Categoria

    (Codigo Int Identity(1,1),

    Descricao VarChar(20))

     

    Create Table #SubCategoria

    (Codigo Int Identity(1,1),

    CodCategoria Int,

    Descricao VarChar(20))

     

    Create Table #Sessao

    (Codigo Int Identity(1,1),

    CodSubCategoria Int,

    Descricao VarChar(20))

     

    Create Table #Itens_Sessao

    (Codigo Int Identity(1,1),

    CodSessao Int,

    Descricao VarChar(20),

    Quantidade Int)

     

    Insert Into #Categoria Values ('Informática')

    Insert Into #Categoria Values ('Compras')

    Insert Into #Categoria Values ('Vendas')

     

    Insert Into #SubCategoria Values (1,'Monitor')

    Insert Into #SubCategoria Values (1,'Impressora')

    Insert Into #SubCategoria Values (1,'Fax')

    Insert Into #SubCategoria Values (2,'Caderno')

    Insert Into #SubCategoria Values (3,'Folders')

     

    Insert Into #Sessao Values (1,'LCD 19')

    Insert Into #Sessao Values (1,'LCD 17')

    Insert Into #Sessao Values (1,'LCD 15')

     

    Insert Into #Itens_Sessao Values (1,'Philips',10)

    Insert Into #Itens_Sessao Values (2,'Philips',2)

    Insert Into #Itens_Sessao Values (1,'Samsung',5)

    Insert Into #Itens_Sessao Values (3,'Philips',3)

     

    Select * from #Categoria

     

    Select * from #SubCategoria

     

    Select * from #Sessao

     

    Select * from #Itens_Sessao

     

     

    quinta-feira, 18 de outubro de 2007 17:24