Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Script sql
martedì 16 settembre 2014 - 11.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
SQL Server 2008
|
SQL Server Express
|
Access (.mdb)
claude78
Profilo
| Newbie
20
messaggi | Data Invio:
mar 16 set 2014 - 11:17
Salve
ho 4 campi...
campo1=regione
campo2= cod. azienda
campo3=data variazione
campo4=stato azienda
select campo1, campo2, max (campo3) from tabella
group by campo1, campo2
Lo script sql è ciò che ho scritto io però non riesco ad andare avanti.
Ti spiego meglio i campi...
Il campo1 rapresenta il codice di una regione... pertanto ogni regione ha un codice
il campo2 rappresenta il codice di un'azienda... può trovarsi anche in diverse regioni
il campo3 è la data in cui inserisco la variazione dello stato azienda...
Il campo4 contiene una sigla ad es. 'A' significa apertura ' c' chiusura che identifica lo stato dell'attività dell'azienda.
Va preso in considerazione che durante l'anno lo stato di un'azienda può cambiare (campo4 )
Pertanto se io voglio sapere lo stato di tutte le aziende nell'ultima variazione come devo fare ???
La seconda domanda invece lo script sql per sapere quali sono le aziende in cui nell'ultima variazione hanno uno stato dell'attività uguale a 'c'.
grazie a tutti
iif
Profilo
| Expert
713
messaggi | Data Invio:
mar 16 set 2014 - 11:25
Aggiungi alla select i codice dell'azienda e usi la clausola group by
claude78
Profilo
| Newbie
20
messaggi | Data Invio:
mar 16 set 2014 - 20:47
Il codice il campo del codice azienda è gia presente nella select forse volevi dire di aggiungere il campo4 ( stato dell'azienda) ed inserirlo nella clausola group by, ma in questo caso lo script mi estrapola tutti i valori massimi corrispondente per ogni stato dell'azienda (campo4) invece a me serve sapere lo stato di tutte le aziende nell'ultima variazione.
ES.
campo1=regione campo2=azienda campo3=data campo4=stato azienda
Marche 1 01/01/2014 A
Marche 2 02/10/2014 A
Marche 2 06/06/2014 C
Lazio 1 03/01/2014 A
Lazio 2 20/01/2014 F
Lazio 2 21/09/2014 F
ALLORA LO SCRIPT DOVREBBE ESTRAPOLARE
Marche 1 01/01/2014 A
Marche 2 06/06/2014 C
Lazio 1 03/01/2014 A
Lazio 2 21/09/2014 F
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
mer 17 set 2014 - 10:27
Ciao Claude,
prova con questa
select campo1,campo2,max(campo3),(select campo4 from tabella_1 where
a.campo1=campo1 and
a.campo2=campo2 and
max(a.campo3)=campo3)
from tabella_1 a
group by campo1,campo2
order by campo1,campo2
Ciao!
claude78
Profilo
| Newbie
20
messaggi | Data Invio:
mer 17 set 2014 - 22:18
Non va !!!
visualizza l'errore "Impossibile avere una funzione aggregazione nella clausola where
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
gio 18 set 2014 - 09:10
Che versione di sql usi?
L'ho testato da me e lavora egregiamente....
claude78
Profilo
| Newbie
20
messaggi | Data Invio:
gio 18 set 2014 - 21:39
Sto su access !!!
Cmq ho passato tutta la nottata ed ho ricacciato questo:
SELECT regione, azienda, data, stato
FROM tabella1
WHERE data=(select max(data) from tabella1 as tab where tabella1.azienda=tab.azienda and tabella1.regione=tab.regione);
Che ne pensi di questo ???
Visto che la query deve lavorare su diverse migliaia di record, secondo te a occhio qual'è più performante come script ????
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
ven 19 set 2014 - 09:32
Access maledetto!
Se lo script che hai trovato lavora correttamente, non hai problemi.
Mi chiedi delle performance: se hai dubbi sul fatto che lo script possa girare lentamente, magari crea degli indici (si può fare su access?) sui campi della where.
Vedrai che girerà molto più velocemente.
Ciao!
Torna su
Stanze Forum
Elenco Threads
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 !