1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Query Engraçada

Discussão em 'Programação' iniciada por Gurzi, 17 de Agosto de 2007. (Respostas: 3; Visualizações: 672)

  1. Gurzi

    Gurzi Power Member

    Bem, tenho aqui umas tabelas que me estão a partir o juízo.
    Ora bem

    OrderFormHeader,OrderGroup,OrderFormLineItems

    Existe um campo comum.. o ordergroupx_id mas que só é chave primária em OrderFormHeader sendo que é uma uniqueidentifier em todos os campos(PK inclusivé).

    Em OrderFormLineItems existem dois resultados para cada ordergroup_id (uma linha para billing address e outra para shipping)

    só que agora quero ligar todas mas não estou a conseguir porque a OrderFormLineItems retorna sempre 2 ids.

    A query mais ou menos é esta
    Code
    SELECT *
    FROM OrderFormHeader AS H, OrderGroup AS G, OrderFormLineItems AS O
    WHERE H.ordergroup_id= G.ordergroup_id AND G.ordergroup_id = O.ordergroup_id
    AND O.LOCAL = 'xpto' AND G.estado = 'andar'
     
  2. Gurzi

    Gurzi Power Member

    Resolvido

    SELECT DISTINCT O.ordergroup_id,receiver_email_address,order_number,estado_encomenda,order_status_code
    FROM OrderGroup AS O, OrderFormLineItems AS X, OrderFormHeader AS F
    WHERE( F.ordergroup_id = O.ordergroup_id AND F.ordergroup_id = X.ordergroup_id )


    Podem fechar :) ty all!
     
  3. ceptrus

    ceptrus Power Member

    esses ralacionamentos à secundário é que nao.. sei que na maior parte das vezes funciona bem mas já por duas ou tres vezes k me deu bronca.

    faz algo do género "From tabela1 t1 INNER JOIN tabela2 t2 ON t1.PK1 = t2.PK2 INNER JOIN tabela3 t3 ON t2.PK2 = t3.PK3"

    depois se continuares com o mesmo problema posso olhar pra isso com mais atençao, mas pra já tenta fazer isto.
    e se puderes mete uma print do teu diagrama, ajuda muito mais a perceber o problema:)

    boa sorte


    EDIT: ainda bem que já trabalha
     
  4. Gurzi

    Gurzi Power Member

    da forma que estás a dizer não vai dar...

    Porque como disse na tabela OrderFormLineItems existe uma uniqueidentifier duplicada, ou seja, vai sempre ligar-se com a uniqueidentifier das oturas tabelas, isto vai acontecer que vai aparecer sempre. :s

    Não vou muito á bola com uniqueidentifiers :S
     

Partilhar esta Página