Group: microsoft.public.it.sql




Subject: Condizioni SQL "raggruppate"
From: AlessandroD
Date: 5/4/2007 11:46:35 AM
lm wrote: > Per la mia ignoranza in materia ho un piccolo problema di query sql in > Sql2005 e non riesco a risolverlo (ho sempre usato il generatore > presente in v.studio, ma in questo caso non mi è di aiuto). > Il semplice problema è: > > Ho una tabella con x campi tra i quali Quantita, Anno, Settimana, e > uno degli indici è formato da Anno + Settimana. > Se voglio ottenere la somma della Quantita per ogni Anno-Settimana, > dove però la coppia Anno-Settimana è "compresa tra", come devo > impostare la query? > > L'ho scritta a mano in questo modo, ma non mi funziona correttamente: > > SELECT AnnoImp, SettImp, SUM(Quantita) AS Qta > FROM MiaTabella WHERE (Anno >= 2006 AND Settimana >= > 48) AND (Anno <= 2007 AND Settimana <= 16) > GROUP BY AnnoImp, SettImp > ORDER BY AnnoImp, SettImp > > Se la provo, inserendola nel generatore query di VS, mi mette le > singole condizioni tra parentesi, ma io le ho bisogno in gruppo! > > Suggerimenti? > Mi sa che sbagli a scrivere la query da un punto di vista logico. Se ti servono le righe per le settimane dalla 48 in poi per l'anno 2006, e quelle per le settimane fino alla 16 per l'anno 2007, la tua where deve essere cambiata in: where (Anno=2006 and Settimana >=58) or (Anno=2007 and Settimana <=16) Ciao, Alessandro

Subject: Condizioni SQL "raggruppate"
From: AlessandroD
Date: 5/4/2007 1:34:21 PM
lm wrote: > [...] > La mia esigenza è quella di ottenere tutte le > righe comprese tra il periodo impostato. > Altri suggerimenti? > Puoi fare così: where (Anno = @AnnoI and Settimana >= @SettimanaI) or (Anno = @AnnoF and Settimana <= @SettimanaF) or (Anno > @AnnoI and Anno < @AnnoF) Dove @AnnoI, @SettimanaI, @AnnoF, @SettimanaF sono i 4 parametri che definiscono il periodo di ricerca. Ciao, Alessandro