Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    Vista incasinata... richiesta suggerimenti

    Ciao, devo realizzare una vista parecchio incasinata... io ho provato a
    seguire la mia mia logica ma mi vengono duplicati alcuni records ... forse
    per qualche join sbagliata

    tabOperazioni
    IDOrdine - IDOperazione - Macchina
    1 - 11 - M1
    1 - 22 - M2
    1 - 33 - M3
    2 - 55 - M2
    3 - 66 - M1

    tabOrdini
    IDOrdine - NrOrdine
    1 - XXXXXX
    2 - YYYYYY
    3 - ZZZZZZ

    TabComponenti
    IDOrd - CodLotto - Articolo - Qt1 - Qt2
    1 - AAA - Art01 - 10 - 5
    1 - CCC - Art03 - 3 - 1
    2 - null - Art02 - 15 - 3
    3 - FFF - Art01 - 9 - 4
    3 - HHH - Art04 - 12 - 3

    tabElencoLotti
    CodLotto (chiave) - Magazzino - Qt3
    AAA - MM1 - 1
    BBB - MM2 - 1
    CCC - MM1 - 1
    FFF - MM3 - 1
    HHH - MM1 - 1

    Quello che voglio ottenere è:

    divido in due parti per capire meglio come arrivare alla vista finale:

    prima parte....

    incrocio con Macchina di tabOperazioni e TabComponenti tramite IdOrd
    Mac - NrOrd - Art - CodLot - Qt1 - Qt2
    M1 - XXXXXX - Art01 - AAA - 10 - 5
    M1 - XXXXXX - Art03 - CCC - 3 - 1
    M2 - XXXXXX - Art01 - AAA - 10 - 5
    M2 - XXXXXX - Art03 - CCC - 3 - 1
    M3 - XXXXXX - Art01 - AAA - 10 - 5
    M3 - XXXXXX - Art03 - CCC - 3 - 1
    M2 - YYYYYY - Art02 - null - 15 - 3
    M1 - ZZZZZZ - Art01 - FFF - 9 - 4
    M1 - ZZZZZZ - Art04 - HHH - 12 - 3


    seconda parte... trovo tutti gli elementi che hanno lotto corrispondente
    nella tabella tabElencoLotti

    collego gli elementi di tabElencoLotti che hanno lo stesso CodLotto dei
    componenti
    Mac - NrOrd - Art - CodLot - Qt1 - Qt2 - Magazzino - Qt3
    M1 - XXXXXX - Art01 - AAA - 10 - 5 - MM1 - 1
    M1 - XXXXXX - Art03 - CCC - 3 - 1 - MM1 - 1
    M2 - XXXXXX - Art01 - AAA - 10 - 5 - MM1 - 1
    M2 - XXXXXX - Art03 - CCC - 3 - 1 - MM1 - 1
    M3 - XXXXXX - Art01 - AAA - 10 - 5 - MM1 - 1
    M3 - XXXXXX - Art03 - CCC - 3 - 1 - MM1 - 1
    M2 - YYYYYY - Art02 - null - 15 - 3 - -
    zzz viene duplicato perchè ci sono due CodLotto corrispondenti
    M1 - ZZZZZZ - Art01 - FFF - 9 - 4 - MM3 - 1
    M1 - ZZZZZZ - Art04 - HHH - 12 - 3 - MM1 - 1
    M1 - ZZZZZZ - Art01 - FFF - 9 - 4 - MM3 - 1
    M1 - ZZZZZZ - Art04 - HHH - 12 - 3 - MM1 - 1


    io avevo provato a fare qualche cosa del tipo...

    non guardate i nomi dei campi perchè purtroppo mi è impossibile riprodurre
    esattamente la struttura del DB


    select
    IDOperazione ,
    Macchina,
    NrOrdine,
    ....
    from tabOperazioni OPE
    inner join tabOrdini OT ON OPE.IDOrdine = OT.IDOrdine
    inner join TabComponenti OC ON OPE.IDOrdine = OC.IDOrdine
    inner join
    (
    select
    CodLotto,
    Magazzino,
    sum(Quantita)

    from tabElencoLotti
    group by CodLotto,
    Magazzino
    ) TMP ON OC.CodLot = TMP.CodLotto

  2. #2
    dividi la tua query in piu sottoquery (ovvero creale nel database) e poi unisci le sotto query, ci si incasina di meno


  3. #3
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117
    Il problema è che non so come "innare" le varie tabelle... ci ho provato ma ottengo degli elementi duplicati

  4. #4
    scusa se non mi ammazzo ma capire quella struttura che hai postato richiede troppo per me...ti posso solo dire che se ti si duplicano elementi o è perchè fai male le join o perchè le clausole che usi portano delle duplicazioni

    potresti provare a sostituire gli inner join con clausole where (ad esempio select tb1.*,tb2.* from tabella1 tb1, tabella2 tb2 where tb1.id=tb2.id1 ) che a me sono sempre risultati piu chiari rispetto al join...

    [quote]
    zzz viene duplicato perchè ci sono due CodLotto corrispondenti
    [/code]

    prova a prendere i codlotto con un distinct

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.