Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12

    [SQL] Query con Data più vecchia

    Per un mio amico dovrei creare un database che lo aiuti a gestire le sue scorte di "magazzino", facendo uscire pre primi i prodotti che sono in magazzino da più tempo.

    Ho provato in più modi ma non riesco ad ottenere il risultato desiderato.

    Riporto qui un esempio.

    Ho una Tabella "Ordini" in cui ho il "Codice" del pezzo.

    La tabella "Stock" ha le colonne "Codice" "Seriale" "Data"

    Un Codice ha più Seriali.

    La query che sto cercando di fare al momento mette in ordine di data "più vecchia" però non restituisce giustamente i seriali ma tutti i seriali presenti nella Tabella Stock che hanno il codice presente nella tabella Ordini.

    Esempio :

    Tabella Ordini :
    • Codice
      A
      B
      A
      C

    Tabella Stock :
    • Codice Seriale Data
      A 1 25/03/2011
      A 2 25/02/2011
      A 3 25/01/2011
      B 25 14/02/2011
      B 11 18/07/2010
      C 45 11/09/2010
      C 21 25/10/2010
      D 54 05/02/2011


    La Query dovrebbe restituirmi :

    • A 3 25/01/2011
      A 2 25/02/2011
      B 11 18/07/2010
      C 45 11/09/2010


    Ma invece mi restituisce :
    • A 1 25/03/2011
      A 2 25/02/2011
      A 3 25/01/2011
      B 25 14/02/2011
      B 11 18/07/2010
      C 45 11/09/2010
      C 21 25/10/2010


    Qui vi riporto il codice della Query :

    SELECT DISTINCT Stock.[Codice], Stock.[Seriale], Min(Stock.[Data]) AS [MinOfData]
    FROM [Ordini] LEFT JOIN Stock ON [Ordini].[Codice]=Stock.[Codice]
    GROUP BY Stock.[Codice], Stock.[Seriale]
    ORDER BY Min(Stock.[Data]);

    Grazie a tutti.

  2. #2
    non devi considerare il seriale

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12
    Non riesco a capire bene cosa intendi per "non considerare il seriale."

  4. #4
    se nella

    SELECT DISTINCT Stock.[Codice], Stock.[Seriale], Min(Stock.[Data]) AS [MinOfData]

    consideri anche il seriale, il seriale verrà (appunto!) considerato e creerà una entry; tu invece vuoi lo stock con data minima, indipendentemente dal seriale

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12
    Ok sistemando seguendo il tuo consiglio però mi continuano ad uscire tutti i Codici presenti nello stock e non la quantità esatta di codici che ho anche nella tabella ordini...

    Scusami se non riesco ad essere perspicace

  6. #6
    posta sempre la query attuale

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12
    SELECT DISTINCT Stock.[Codice], Min(Stock.[Data]) AS [MinOfData]
    FROM [Ordini] LEFT JOIN Stock ON [Ordini].[Codice]=Stock.[Codice]
    GROUP BY Stock.[Codice]
    ORDER BY Min(Stock.[Data]);

    Ecco, Grazie!!!

  8. #8
    SELECT Stock.[Codice], Min(Stock.[Data]) AS [MinOfData]
    FROM [Ordini] LEFT JOIN Stock ON [Ordini].[Codice]=Stock.[Codice]
    GROUP BY Stock.[Codice]

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12
    Funziona!!!!! Grazie mille adesso penso di fare una seconda query di aggiornamento sia della tabella Ordini che della Tabello Stock in maniera tale che ricontrollo qualora ci fossero 3 codici uguali nella tabella Ordini mi riprende l'altro Seriale con la data più vecchia!!!

    Grazie mille...e scusa se sono stato un pò duro di comprendonio

  10. #10

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.