n° 185
Maggio/Giugno 2013
Maggio 21, 2013, 07:32:18 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  

* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Problema risultato query  (Letto 1122 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
pantera71
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 65


Mostra profilo E-mail
« inserita:: Maggio 22, 2012, 10:08:45 am »

Salve a tutti,
sono nuovo nel mondo di SQL e mi sono bloccato nel creare una query.

Devo estrarre da un database tutti i record che non sono stati movimentati negli ultimi 90 giorni, secondo un valore di un campo

Sono riuscito ad estrapolarmi tutti i record che hanno il campo valorizzato, ma non riesco a far uscire solo quelli non movimentati negli ultimi 90 giorni.

Quello che ho scritto è:

Codice:
SELECT movimento AS Data
           articolo AS Cod_Articolo
           funzione AS Funzione

FROM    BMGTMOVIM

WHERE (funzione = 'PL') AND (funzione = 'WP')

ORDER BY articolo

Suppongo che dovrei creare un'altra istruzione dove

SE movimento <= 28/02/2012 visualizza l'articolo, altrimenti passa a presso.
ma l'articolo può essere movimento anche prima di quella data, quindi non me lo deve visualizzare

E' un po complessa come Query, perciò non ci riesco.
Registrato
gibra
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 21



Mostra profilo WWW
« Risposta #1 inserita:: Maggio 22, 2012, 10:38:14 am »

A parte che nella query mancano le virgole di separazione nella SELECT...

se usi
SE movimento <= 28/02/2012
visualizzerai i movimenti antecedenti ai 90 giorni, mentre tu vuoi quelli degli ultimi 90 giorni, che è 'leggermente' diverso.  Ghigno

Alla condizione che stai già usando:
Codice:
WHERE (funzione = 'PL') AND (funzione = 'WP')

Devi aggiungere quella sul controllo della data:
Codice:
AND Movimento BETWEEN getdate() AND (getdate() - 90)


Per calcolare getdate() - 90 puoi usare la funzione DateAdd(), vedi la guida per i dettagli,
oppure:
http://www.w3schools.com/sql/func_getdate.asp
http://www.w3schools.com/sql/func_dateadd.asp


Registrato

pantera71
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 65


Mostra profilo E-mail
« Risposta #2 inserita:: Maggio 22, 2012, 11:13:24 am »

Allora, ho modifica la query in questo modo:
Codice:
SELECT min(btm_dtfinemovimento) as Data,
btm_codart AS Cod_Art,
btm_tabfunrf

FROM bmgtmovim
WHERE btm_tabfunrf in ('PL','WP') AND btm_dtfinemovimento <= '20120228 00:00:00'

GROUP BY btm_codart,btm_tabfunrf

ORDER BY btm_codart

Mi prende dal Database tutti i record che hanno una data inferiore al 28/02/2012.
Solo che alcuni articoli sono stati movimentati anche dopo questa data e quindi non li deve prendere, come devo modificare la query?

Grazie per le risposte.
Registrato
gibra
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 21



Mostra profilo WWW
« Risposta #3 inserita:: Agosto 17, 2012, 05:12:42 pm »

Cambiare la data?
Registrato

Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2011 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



Links to Page