Newsgroup: it.comp.software.database
Titolo: Prblema SQL

Ciao, ho un problemino di SQL...
ho una tabella GIORNO che (tra le altre cose) contiene due campi
-IDTabella
-IDapp
l'IDTabella puo assumere tre valori che corrispondono a tre tabelle 
diverse, lo uso per selezionare la tabella nella quale cercare IDapp
In pratica io in un giorno posso avere:
-Appuntamenti
-Scadenze
-Lezione
se l'IDTabella vale 2 e IDapp vale 8 devo cercare in quale riga della 
tabella scadenze ho IDapp (che su scadenze è chiave primaria) uguale a 8.
Essendo inserito in un programmino java potrei fare due SELECT:
-la prima mi prende la riga del giorno in esame
-la seconda seleziona dalla tabella giusta (la query la creo per 
concatenamento)
spero di essere stato chiaro...
ciao.
p.s. sono nuovo, ma il traffico è sempre così alto? Ho visto un sacco di ng 
in cui si parla di db (it.comp.java e linux.*) possibile che qui non ci sia 
nessuno? :-)
ciao
-- 
Antonello Pasella

 spero di essere stato chiaro...
Veramente no... quale e' il tuo problema ??
Davide
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Veramente no... quale e' il tuo problema ??
Ti spiego, vorrei sistemare la mia agenda sotto db.Tabl
Per adesso ho trovato la soluzione che proponevo, ma devo gestirla in due 
query.
Vorrei poter selezionare per ogni giorno che cosa devo fare.
Ho suddiviso la giornata in blocchi da mezz'ora e  ogni mezz'ora è 
caratterizzata (per adesso) da un IDTabella e IDRecord
dove IDTabella mi dice in quale tabella cercare IDRecord
Il problema nasce dal dover fare una query che mi dia la riga del record.
Se ho scritto in una certa mezz'ora IDTabella=1 e IDRecord=5 voglio una 
query che mi dia il record 5 della tabella 1
se ho IDTabella=3 e IDRecord=9 voglio che mi dia il record 9 della tabella 
3.
Il problema è che per fatto di cose le tabelle sono differenti...
Tabella Scadenze:
IDScadenza
IDGiorno (per velocizzare la ricerca nell'altro verso)
Descrizione
Tabella Appuntamenti:
IDAppuntamento
IDGiorno (idem)
Durata
Riferimento
Luogo
Descrizione
Tabella Corsi
IDCorsi
Titolo
TitoloBreve
Società
Paga_oraria
Data_inizio
Data_fine
Sede
Finito
Ore_tot
Tabella Giorno
IDGiorno
0000IDTabella
0000IDRecord
0030IDTabella
0030IDRecord
...
...
2330IDTabella
2330IDRecord
adesso è piu chiaro?
ciao e grazie per la risposta
-- 
Antonello Pasella

 ciao e grazie per la risposta
Davide? Ci sei? dai, ho dettagliato un po ... per favore :-)
grazie cmq. 
-- 
Antonello Pasella

 Davide? Ci sei? dai, ho dettagliato un po ... per favore :-)
...di tanto in tanto pure io vado in ferie.
Comunque, da quello che ho capito tu vorresti fare una query tipo
select
   case IDTabella
   case 1:
       select * from appuntamenti...
   case 2:
       select * from scadenze...
Questo tipo di costruzione e' supportato (piu' o meno) da vari
database (SQL Server ed Oracle mi vengono in mente subito), solo che,
se non riesci ad avere la stessa struttura per tutte le tabelle son
dolori.
Vedo 3 soluzioni:
1. rivedi la struttura delle tabelle in modo da avere una cosa piu'
   o meno omogenea, in modo che facendo una UNION metti insieme
   tutte le informazioni
2. accetti di avere una marea di campi NULL o possibilmente NULL e
   te li gestisci in accordo (sempre che il tuo database supporti
   la costruzione di cui sopra)
3. ti tieni la cosa come e' adesso e non ci pensi piu'.


 3. ti tieni la cosa come e' adesso e non ci pensi piu'.
ok, pensavo bene.
grazie cmq
ciauzzz
-- 
Antonello Pasella