+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Listini senza determinato prodotto

  1. #1
    fabietto10 non è in linea Scolaretto
    Post
    90

    Listini senza determinato prodotto

    Buongiorno a tutti,
    nel database a cui sto lavorando ho una tabella prodotti_master

    codice:
    id_prodotto_master Primary KEy
    nome
    etc..
    etc..
    i prodotti presenti in questa tabella possono essere presenti all'interno di un'altra tabella tbl_prodotti_listini
    codice:
    id_prodotto_listino
    id_listino
    id_prodotto_master
    etc
    etc.
    Questa scelta è stata fatta per consetire a chi usa il db di usare scontistiche/ricarichi diversi nei vari listini cliente.
    trovare in quali listini è presente un prodotto_master è un'operazione che risulta assai banale.
    al momento ho invece difficoltà nell'operazione inversa. identificare il listini in cui NON è presente prodotto "x"

    codice:
    SELECT DISTINCT tbl_prodotti_listini.ID_listino
    FROM tbl_prodotti_listini
    WHERE tbl_prodotti_listini.id_listino Not In (SELECT tbl_prodotti_listini.ID_listino
    FROM tbl_prodotti_listini WHERE tbl_prodotti_listini.ID_prodotto_master=1085)
    la query qui sopra funziona,ma non mi restituisce il numero esatto di listini dove il prodotto 1085 non è presente.
    suggerimenti?
    Grazie

  2. #2
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,906
    non hai bisogno del distinct nella prima parte perchè la tua origine deve essere l'anagrafica listini
    quindi hai sbagliato quello, l'origine della select principale
    codice:
    SELECT id_listino
    FROM tbl_listini
    WHERE id_listino Not In 
         (
          SELECT id_listino
          FROM tbl_prodotti_listini
          WHERE id_prodotto_master=1085
          )

  3. #3
    fabietto10 non è in linea Scolaretto
    Post
    90
    Quote Originariamente inviato da muttley005 Visualizza il messaggio
    non hai bisogno del distinct nella prima parte perchè la tua origine deve essere l'anagrafica listini
    quindi hai sbagliato quello, l'origine della select principale
    codice:
    SELECT id_listino
    FROM tbl_listini
    WHERE id_listino Not In 
         (
          SELECT id_listino
          FROM tbl_prodotti_listini
          WHERE id_prodotto_master=1085
          )
    Muttley bisogna tenere conto che nella tabella tbl_prodotti_listini, id_listino è un campo con duplicati (ogni listino ha più id_prodotto_master). è quindi necessario un distinct o un groupy by per identificare una sola volta il lisitino. ad ogni modo i riisultati che ottengo sono errati. se ho complessivamente 100 listini ognuno con x prodotti, ed in solo due ho il prodotto con id 1805 , mi aspetto che la query restituisca 98 listini. al momento non è quello che ottengo.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,997
    Banalmente escludi dall'elenco quelli in cui è presente...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    fabietto10 non è in linea Scolaretto
    Post
    90
    ho sbagliato l'assunto di partenza. in realtà la tabella da interrogare è quella dei listini e non quella con i prodotti al loro interno.
    ho risolto chiaramente in questo modo
    codice:
    SELECT tbl_listini.ID_listino
    FROM tbl_listini WHERE (((tbl_listini.ID_listino) Not In (SELECT tbl_prodotti_listini.ID_listino
    FROM tbl_prodotti_listini WHERE tbl_prodotti_listini.ID_prodotto_master=1085)));
    Grazie a tutti cmq.

  6. #6
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,906
    io che ti avevo scritto?

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi