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
Filtrare solo le ultime revisioni
martedì 10 luglio 2012 - 23.34
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
Access (.mdb)
|
Office 2010
MIKELE4U
Profilo
| Newbie
2
messaggi | Data Invio:
mar 10 lug 2012 - 23:34
ciao
sono nuovo di questo forum e quindi mi presento.
Mi chiamo Michele e sono un principiante di ACCESS
Vorrei essere aiutato nel risolvere il mio problema che provo a spiegare
Ho un archivio disegni cosi congeniato
tabella_progetti
-id_pr (chiave primaria)
-progetto
tabella_disegni
- id_dis (chiave primaria)
- id_pr (collegata con la tabella_progetti)
- descrizione
tabella_revisioni
- id_rev (chiave primaria)
- id_dis (collegata con la tabella_disegni)
- rev (valori possibili 0,1,2,...N)
- data rev
ecco la domanda:
per ogni progetto (campo progetto della tabella_progetti) vorrei estrapolare tutti i disegni che li competono (campo descrizione della tabella_disegni) che hanno lo stato di revisione maggiore (campo rev della tabella_revisioni)
grazie
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
lun 16 lug 2012 - 09:40
prova con qualcosa del genere
ciao, Michele
select p.progetto, d.id_dis, d.descrizione, r.rev, r.data_rev
from tabella_disegni d
inner join tabella_revisioni r on d.id_dis = r.id_dis
inner join tabella_progetti p on d.id_pr = p.id_pr
where not exists
(select 1 from tabella_revisioni r2
where r2.id_dis = r.id_dis
and r2.rev > r.rev);
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
lun 16 lug 2012 - 17:31
Ciao!
Questi sono gli script per le tabelle:
CREATE TABLE [dbo].[tabella_revisioni](
[id_rev] [decimal](10, 0) NULL,
[id_dis] [decimal](10, 0) NULL,
[rev] [decimal](10, 0) NULL,
[data_rev] [varchar](8) NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[tabella_disegni](
[id_dis] [decimal](10, 0) NULL,
[id_pr] [decimal](10, 0) NULL,
[descrizione] [varchar](100) NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[tabella_progetti](
[id_pr] [decimal](10, 0) NULL,
[progetto] [varchar](100) NULL
) ON [PRIMARY]
Questi gli script di alimentazione delle tabelle:
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (1,1,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (2,1,2,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (3,1,3,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (4,2,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (5,2,2,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (6,3,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (7,4,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (8,4,2,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (9,4,3,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (10,4,4,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (11,5,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (12,5,2,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (13,6,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (14,6,2,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (15,6,3,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (16,7,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (17,7,2,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (18,8,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (19,9,1,'111111')
insert into tabella_revisioni(id_rev,id_dis,rev,data_rev) values (20,9,2,'111111')
insert into tabella_progetti(id_pr,progetto) values (1,'progetto1')
insert into tabella_progetti(id_pr,progetto) values (2,'progetto2')
insert into tabella_progetti(id_pr,progetto) values (3,'progetto3')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (1,1,'disegno_num1_prog1')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (2,1,'disegno_num2_prog1')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (3,1,'disegno_num3_prog1')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (4,2,'disegno_num1_prog2')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (5,2,'disegno_num2_prog2')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (6,2,'disegno_num3_prog2')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (7,3,'disegno_num1_prog3')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (8,3,'disegno_num2_prog3')
insert into tabella_disegni(id_dis,id_pr,descrizione) values (9,3,'disegno_num3_prog3')
Questo è il set di risultati:
id_pr descrizione rev
1 disegno_num1_prog1 3
1 disegno_num2_prog1 2
1 disegno_num3_prog1 1
2 disegno_num1_prog2 4
2 disegno_num2_prog2 2
2 disegno_num3_prog2 3
3 disegno_num1_prog3 2
3 disegno_num2_prog3 1
3 disegno_num3_prog3 2
che puoi ottenere lanciando questa query:
select tabella_progetti.id_pr,tabella_disegni.descrizione,tabella_revisioni.rev
from tabella_progetti,tabella_disegni,tabella_revisioni
where tabella_progetti.id_pr=tabella_disegni.id_pr
and
tabella_disegni.id_dis=tabella_revisioni.id_dis
and tabella_revisioni.rev=(select
max(a.rev) from tabella_revisioni a
where tabella_revisioni.id_dis=a.id_dis)
Ciao!
MIKELE4U
Profilo
| Newbie
2
messaggi | Data Invio:
lun 16 lug 2012 - 21:55
perfetto
funziona, grazie mille
Michele
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 !