Newsgroup: it.comp.appl.access
Titolo: Definire le stagioni dell'anno con access

Salve a tutti,
Vi sarei grato se qualcuno del NG potrebbe darmi qualche suggerimento su
come poter tirare fuori tramite query solo le date suddivise per stagioni.
Ad esempio, all'interno delle mie tabelle sono presenti date riferite a più
anni, io vorrei estrapolare le date che rientrano nell'intervallo cioè:
dal 22/09 al 21/12 che rappresenta l'autunno
dal 22/12 al 21/03 che rappresenta l'inverno
dal 22/03 al 21/06 che rappresenta la primavera
dal 22/06 al 21/09 che rappresenta l'estate.
Non so se sono stato abbastanza chiaro, comunque Vi ringrazio
anticipatamente e spero di poter dare anch'io nel mio piccolo un contributo
a questo NG che ho scoperto da poco ma ritengo che sia molto utile a tutti.
Saluti
Rosario

 dal 22/06 al 21/09 che rappresenta l'estate.
[...]
    (... pero' c'e' una stagione che comincia il giorno 23. Mi pare sia
l'autunno...)
    Non ho capito se vuoi
        1. conoscere il modo in cui scegliere solo i record di una
           data stagione;
    -oppure-
        2. scegliere tutti i record, ripartiti per stagione (e per
           anno no?)
    -oppure-
        3. scegliere tutti i record, con un campo calcolato che indichi
           a quale stagione si riferisca la registrazione.
    Quale che sia il caso che ti interessa, la query seguente, basata sulla
tabella "Ordini" del database di esempio Northwind, dovrebbe fornirti lo
spunto per una possibile soluzione per tutti e tre i casi.
PARAMETERS
    [Stagione? ( A | I | P | E )] Text ( 1 )
;
SELECT
    Choose
    (
      -1*
      (
        DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
        Between #9/23/100# And #12/21/100#
      )
      -2*
      (
        (
          DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
          Between #12/22/100# And #12/31/100#
        )
      Or
        (
          DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
          Between #1/1/100# And #3/21/100#
        )
      )
      -3*
      (
        DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
        Between #3/22/100# And #6/21/100#
      )
      -4*
      (
        DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
        Between #6/22/100# And #9/22/100#
      )
    ,"A"
    ,"I"
    ,"P"
    ,"E"
    ) AS STAG
  , T.*
FROM
    Ordini AS T
WHERE
    Choose
    (
      -1*
      (
        DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
        Between #9/23/100# And #12/21/100#
      )
      -2*
      (
        (
          DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
          Between #12/22/100# And #12/31/100#
        )
        Or
        (
          DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
          Between #1/1/100# And #3/21/100#
        )
      )
      -3*
      (
        DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
        Between #3/22/100# And #6/21/100#
      )
      -4*
      (
        DateSerial(100,Month([T].[DataOrdine]),Day([T].[DataOrdine]))
        Between #6/22/100# And #9/22/100#
      )
    ,"A"
    ,"I"
    ,"P"
    ,"E"
    )
    =
    [Stagione? ( A | I | P | E )]
;
-- 
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
Ciao :o)
Maurizio
--------
?SPQR(C)
 X
--------

 a questo NG che ho scoperto da poco ma ritengo che sia molto utile a
tutti.
so che c'č una funzione specifica che divide in trimestri l'anno.. ma a
partire da Gennaio
un suggerimento potrebbe essere inserire in una sequenza di IF le varie date
significative...
If data(now())>22/09 and data(now())<21/12 then msgBox "Autunno"...
ciao