Select da codice

mercoledì 29 ottobre 2008 - 15.32

squilibrio Profilo | Expert

Ciao a tutti devo gestire una query senza utilizzare i parametri

non capisco cosa sbaglio nella data

if ((DataInizio != "") && (DataFine != ""))
sb.AppendFormat(" WHERE (DataContratto >='#{0}#' AND DataContratto <='#{1}#')", DataInizio, DataFine);


in questo modo mi da errore nella query

e in questo modo


if ((DataInizio != "") && (DataFine != ""))
sb.AppendFormat(" WHERE (DataContratto >=#{0}# AND DataContratto <=#{1}#)", DataInizio, DataFine);

non ho errori ma vengono recuperati tutti gli elementi, senza filtro per data


cosa sbaglio?

Grazie

lbenaglia Profilo | Guru

>cosa sbaglio?
A non dirci con quale DBMS stai lavorando e senza un esempio completo per riprodurre l'anomalia che riscontri e di cui non hai detto niente.
Tra l'altro in cosa differiscono le due righe che hai postato?

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

>Ciao a tutti devo gestire una query senza utilizzare i parametri
Ciao!

Prima cosa, è access? O un altro RDBMS?

>in questo modo mi da errore nella query
Questo perchè le apici non ci vogliono..

>cosa sbaglio?
Facci sapere se è access o altro..

>Grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

squilibrio Profilo | Expert

Scusate avete ragione!! MS Access

lbenaglia Profilo | Guru

>Scusate avete ragione!! MS Access
Con Access puoi utilizzare il formato #MM/DD/YYYY# senza apici.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

squilibrio Profilo | Expert

Che infatti è esattamente quello che ho inserito io ma prende "tutto" il periodo .... quindi senza considerare le date

Per quale motivo?

squilibrio Profilo | Expert

SELECT Anag_Comuni.CodiceComune, Anag_Comuni.Comune, Sum(Rel_AgentiAree.Valore) AS Gruppo, Sum(Rel_AgentiAree_1.Valore) AS Azione, Sum(Rel_AgentiAree_2.Valore) AS Tariffa, Sum(Rel_AgentiAree.Valore)+Sum(Rel_AgentiAree_1.Valore)+Sum(Rel_AgentiAree_2.Valore) AS Totale, Count(*) AS Conteggio FROM ((((((Contratti INNER JOIN Anag_ContrattoTariffe ON Contratti.CodiceTariffa=Anag_ContrattoTariffe.CodiceTariffa) INNER JOIN Anag_ContrattoAzioni ON Contratti.CodiceAzione=Anag_ContrattoAzioni.CodiceAzione) INNER JOIN Anag_ContrattoGruppi ON Contratti.CodiceGruppoCliente=Anag_ContrattoGruppi.CodiceGruppo) INNER JOIN Anag_Comuni ON Contratti.CodiceComune=Anag_Comuni.CodiceIstat) INNER JOIN Rel_AgentiAree ON (Contratti.CodiceAgente=Rel_AgentiAree.CodiceAgente) AND (Anag_ContrattoGruppi.CodiceGruppo=Rel_AgentiAree.CodiceArea)) INNER JOIN Rel_AgentiAree AS Rel_AgentiAree_1 ON (Contratti.CodiceAgente=Rel_AgentiAree_1.CodiceAgente) AND (Anag_ContrattoAzioni.CodiceAzione=Rel_AgentiAree_1.CodiceArea)) INNER JOIN Rel_AgentiAree AS Rel_AgentiAree_2 ON (Contratti.CodiceAgente=Rel_AgentiAree_2.CodiceAgente) AND (Anag_ContrattoTariffe.CodiceTariffa=Rel_AgentiAree_2.CodiceArea) WHERE (DataContratto >=#01/10/2008# AND DataContratto <=#29/10/2008#) AND (Contratti.CodiceComune = '017165') GROUP BY Anag_Comuni.CodiceComune, Anag_Comuni.Comune ORDER BY Comune

Non prende solo gli elementi nel range 01/10 - 29/10 ma tutti gli i records

Grazie ancora!

squilibrio Profilo | Expert

Scusate se ri-posto..... ho fatto un po' di prove

ed invertendo la data 10/01/2008 - 29/01/2008

perchè con il formato UK è corretta??

lbenaglia Profilo | Guru

>Scusate se ri-posto..... ho fatto un po' di prove
>
>ed invertendo la data 10/01/2008 - 29/01/2008
>
>perchè con il formato UK è corretta??
Infatti ti avevo suggerito proprio il formato #MM/DD/YYYY#
Perché è corretto? Perché è il formato utilizzato da Access per le date indipendentemente dalle Regional Options impostate sulla macchina.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

squilibrio Profilo | Expert

ahhh non avevo notato che nella tua risposta mi avevi consigliato di invertire MM e DD .... ora cmq è OK!

Grazie !!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5