Visualizzazione dei risultati da 1 a 5 su 5

Discussione: select fra due date

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    556

    select fra due date

    ho una tabella con due campi datainizio e datafine

    come faccio a costruire una ricerca per recuperare i record compresi fra datainizio e datafine .... comprendendo anche quelli la cui datafine è NULL ?

    ciao

  2. #2
    guarda l'istruzione Between
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Se ho capito bene vuoi che tiri fuori i record la cui data_inizio è compresa in un certo intervallo e la data_fine è compresa in un certo intervallo oppure è nulla.
    Se è questo quello che volevi fare il codice che ti metto sotto funziona benissimo in oracle.

    (to_date(to_char(data_inizio,'dd-mm-yyyy'),'dd-mm-yyyy')
    between to_date('01-01-2015','dd-mm-yyyy') and
    to_date(
    nvl('15-01-2015',to_char(sysdate,'dd-mm-yyyy')),'dd-mm-yyyy')) and

    ((to_date(to_char(data_fine,'dd-mm-yyyy'),'dd-mm-yyyy') between to_date('01-01-2015','dd-mm-yyyy') and
    to_date(
    nvl('15-01-2015',to_char(sysdate,'dd-mm-yyyy')),'dd-mm-yyyy')) or data_fine is null)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    556
    Quote Originariamente inviata da Saretta883 Visualizza il messaggio
    Se ho capito bene vuoi che tiri fuori i record la cui data_inizio è compresa in un certo intervallo e la data_fine è compresa in un certo intervallo oppure è nulla.
    Se è questo quello che volevi fare il codice che ti metto sotto funziona benissimo in oracle.

    (to_date(to_char(data_inizio,'dd-mm-yyyy'),'dd-mm-yyyy')
    between to_date('01-01-2015','dd-mm-yyyy') and
    to_date(
    nvl('15-01-2015',to_char(sysdate,'dd-mm-yyyy')),'dd-mm-yyyy')) and

    ((to_date(to_char(data_fine,'dd-mm-yyyy'),'dd-mm-yyyy') between to_date('01-01-2015','dd-mm-yyyy') and
    to_date(
    nvl('15-01-2015',to_char(sysdate,'dd-mm-yyyy')),'dd-mm-yyyy')) or data_fine is null)


    mi spiego meglio: ho una tabella con gli uffici uno a molti con una tabella responsabiliuffici a sua volta relazionata molti a uno con la tabella dei dipendenti
    un dipendente può essere responsabili di più uffici e un ufficio può avere nel corso del tempo più responsabili.

    ora devo costruire una query che mi faccia vedere sempre tutti gli uffici e che mi visualizzi i responsabili ad una certa data immessa come parametro.

    questa è la faccenda

  5. #5
    Da quello che ho capito ogni ufficio in un determinato momento può avere un unico responsabile.
    Visto che non ho la struttura del db a disposizione, non posso farti la query ma l'idea è questa:

    select campi che vuoi visualizzare
    from tabelle legate in modo corretto
    where data_inizio < = data inserita dall'utente AND (data_fine > = data inserita dall'utente OR data_fine is null)

    Se hai capito l'idea fai delle prove e nel caso avessi problemi posta la struttura del db, il codice e l'errore

    Quote Originariamente inviata da gdota Visualizza il messaggio
    mi spiego meglio: ho una tabella con gli uffici uno a molti con una tabella responsabiliuffici a sua volta relazionata molti a uno con la tabella dei dipendenti
    un dipendente può essere responsabili di più uffici e un ufficio può avere nel corso del tempo più responsabili.

    ora devo costruire una query che mi faccia vedere sempre tutti gli uffici e che mi visualizzi i responsabili ad una certa data immessa come parametro.

    questa è la faccenda

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.