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

    Ricerca del giorno precedente su db Mysql

    Avrei bisogno del vostro aiuto su un problema che non so come affrontare..

    Ho un db MySQL, all'interno di una tabella ho una colonna chiamata data in cui immagazzino delle date. Ho creato un semplice programmino nel quale l'utente finale creerà giorno per giorno, un giornaliero (scusate il gioco di parole) nel quale indicherà i vari eventi della giornata. Ora avrei la necessità di effettuare un calcolo prendendo un valore dal giorno precedentemente creato e poi effettuare un calcolo. Il problema é capire come ricercare nel db il primo giorno antecedente prendendo come riferimento la data del giorno corrente. Ammettiamo ad esempio che io oggi inserisca il giorno 05/08/2011 e debba eseguire questo calcolo, dovrei recuperare il primo giorno disponibile antecedente a questa mia data odierna. Inizialmente avevo pensato al recupero dell'ultimo id inserito, ma questa soluzione non va bene, in quanto l'utente potrebbe inserire i giorni in ordine non cronologico e quindi la ricerca dell'ultimo id si rivelerebbe inutile ed incorretta.. Io non conosco query che possano svolgere questo compito...

  2. #2
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Prendi spunto da questa query:

    codice:
    SELECT        
           t.ID
         , t.CODE
    
         , m.max_date
         , t.DATES
    
         , m.max_C2H4_PPM
         , t.C2H4_PPM
    
         , PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM m.max_date)
         , EXTRACT(YEAR_MONTH FROM t.DATES)) MONTHS
    
         , FORMAT((max_C2H4_PPM-t.C2H4_PPM)/PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM m.max_date)
         , EXTRACT(YEAR_MONTH FROM t.DATES)),3) INCREMENT
    
    FROM ( 
           SELECT 
           CODE
         , MAX(DATES) max_date
         , MAX(C2H4_PPM) max_C2H4_PPM
    
    FROM Tbl_copy
           GROUP BY CODE, DATES) m
    
           INNER JOIN Tbl_copy t ON t.CODE = m.CODE AND (m.max_date > t.DATES)
           WHERE 1 AND t.CODE > 0
    
           GROUP BY t.CODE, DATES
           ORDER BY t.CODE, DATES DESC;

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non son sicuro di aver capito bene ma ci provo.

    select max(data) as recente from tabella where data < curdate()

  4. #4
    potrebbe funzionare, se io al posto del curdate(), ci metto una variabile che contiene la mia data corrente (quella del giorno in questione), in teoria, lui con questa query dovrebbe prendere il giorno precedente a quello indicato dalla mia variabile..

  5. #5
    Funziona! grazie mille! in questo modo recupero il primo giorno disponibile dalla data che gli passo io, quindi anche se inserisco i giorni in ordine non cronologico, quando effettuo la query, passandogli quel determinato giorno, lui mi cercherà il primo giorno disponibile da quella determinata data.. Thx!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.