Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [SQL] Help scrittura SQL

    Salve gente, devo scrivere dell'sql che faccia il seguente lavoro:

    Dal codice lotto bisogna andare a leggere i movimenti di magazzino con quel lotto (in ordine di prodotto/data movimento) e stampare tutto quello che si trova, con questo troviamo tutti i movimenti del lotto digitato ma non basta. Voglio anche sapere quel lotto da quale altro lotto è stato creato e qui entrano in gioco degli attributi specifici presenti sempre sui movimenti di magazzino:

    - Num.Documenti di produzione (anno e numero) (solo nel caso in cui ci sia dentro qualcosa)

    Tramite questo numero devo rileggere i movimenti di magazzino e vedere quali altri lotti materiali sono stati prelevati e stamparli. Considera che il ciclo potrebbe arrivare all'infinito, cioè il lotto a fatto dal lotto b fatto a sua volta dal lotto c fatto dal lotto d, ecc......
    Io ho scritto il seguente codice:
    codice:
    SELECT
         lotti.`CODICE_LOTTO`,
         movimenti_magazzino.`NUMERO_MOVIMENTO`,
         movimenti_magazzino.`CODICE_ARTICOLO`,
         movimenti_magazzino.`CODICE_MAGAZZINO,
         movimenti_magazzino.`DATA_MOVIMENTO`,
         movimenti_magazzino.`CAUSALE_MOVIMENTO`,
         movimenti_magazzino.`QUANTITA_MOVIMENTO`,
         movimenti_magazzino.`NUMERO_DOC_PROD`,
         movimenti_magazzino.`ANNO_DOC_PROD`,
         tab_causali_magazzino.`DESCRIZIONE`,
         movimenti_magazzino.`UNITA_MISURA`
    FROM
         movimenti_magazzino RIGHT OUTER JOIN lotti ON movimenti_magazzino.`CODICE_LOTTO` = lotti.`CODICE_LOTTO`
         LEFT OUTER JOIN tab_causali_magazzino ON movimenti_magazzino.`CAUSALE_MOVIMENTO` = tab_causali_magazzino.`CODICE_CAUSALE`
    WHERE
         lotti.`CODICE_LOTTO` = '1234'
    Ora del lotto 1234 mi ridà tutti i movimenti, però mi manca la parte che ricava quale lotto ha generato il lotto 1234.
    Come potrei fare?

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    In quale tabella/campo è contenuta la informazione che indica quale lotto produce il lotto in questione? Inoltre... il testo dice che potresti avere un ciclo infinito. Questo significa che puoi avere una situazione del tipo a produce b che produce c che produce a o lotti che si autoproducono? Altrimenti, per quanto lungo possa essere O(N), non rischi un loop infinito.

    Potresti comunque creare una stored procedure che itera...
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Il campo NUM_DOC_PROD indica quale lotto produce il lotto in questione.
    La situazione di lotti che si autoproducono non esiste.
    Come potrei fare quindi? Mi hanno suggerito che in sql riesco a fare tutto

  4. #4
    Come faccio a relazionare il valore del campo di una tabella (NUM_DOC_PROD nel mio caso) con i valori contenuti sempre nella stessa tabella?

    Faccio un esempio: mettiamo che un record abbia NUM_DOC_PROD=123, ora come faccio a scrivere l'sql per trovare sempre nella stessa tabella i record con NUM_DOC_PROD=123??

    Help me

  5. #5
    Nessuno sa aiutarmi?

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.