Newsgroup: it.comp.appl.access
Titolo: query particolare

Ciao a tutti. Ho una tabella che contiene i dati relativi a delle basi
musicali e per ogni canzone puo' esistere piu' di una versione della base e
quindi piu' di un record.
I campi sono :
ID
Cantante
Titolo
Testo (sì/no indica l'eventuale presenza del testo su carta della canzone)
Karaoke (sì/no indica la presenza del karaoke nella base)
Dovrei estrarre tutte le basi i cui titoli hanno il testo , ma per i quali
non esiste nessuna versione con il karaoke . Esempio
ID        Cantante                  Titolo                     Testo
karaoke
1           Battisti                    Anna                         sì
sì
2           Battisti                    Anna                        sì
no
3           Baglioni                    Avrai                       sì
no
4           Baglioni                    Avrai                       sì
no
5           Venditti                   Roma capoccia           no
sì
6           Venditti                   Roma capoccia           no
sì
7            Zucchero                Con le mani                sì
no
la query deve restituire :
3           Baglioni                    Avrai                       sì
no
4           Baglioni                    Avrai                       sì
no
7            Zucchero                Con le mani                sì
no
Io l'ho fatto ma in un modo che mi sembra molto macchinoso (varie query a
catena), e ero quindi curioso di vedere (anche per imparare) come si poteva
eseguire con un sistema piu' "professionale". Ringrazio tutti e buona
serata.


Una sola query con criterio sì e no nei campi giusti.
Vai in struttura query e sotto i campi che ti interessano inserisci i
criteri.
Gia che ti trovi guardati l'sql
ciao MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it


Forse mi sono spiegato male, se imposto come condizione del campo Testo= sě'
e come condizione del campo karaoke = no ottengo tutti record con queste
condizioni, mentre io voglio solo quelli per i quali non esiste un'altro
record con stesso cantante, stesso titolo e karaoke = sě



Ci vogliono almeno due operazioni. Una query di creazione tabella:
SELECT canz.nome, canz.cant, Max(Not ([canz].[k]) And
([canz].[testo])) AS Espr1 INTO t2
FROM canz
GROUP BY canz.nome, canz.cant
HAVING (((Max(Not ([canz].[k]) And ([canz].[testo])))=-1));
e quindi quella si selezione
SELECT 
canz.id
, canz.nome, canz.cant
FROM canz INNER JOIN t2 ON (canz.cant = t2.cant) AND (canz.nome =
t2.nome);

 ha scritto nel messaggio
news:skgt9.64000$%M1.16...@twister2.libero.it...
Ho risposto al thread aperto il 22/10/2002 ore 19:49 nel quale hai postato
per ben due volte lo stesso messaggio oggetto anche di questo thread.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 --
Chiedo scusa ma effettivamente io ho postato come tu dici a quell'ora , ma
tutt'ora non vedo nei i miei messaggi ne' la tua risposta . Qualcuno sa
spiegarmi perche'.

 ha scritto nel messaggio
news:ZUyt9.67284$%M1.17...@twister2.libero.it...

Posto qui di seguito la risposta che ti ho dato nel'altro thread:
Se la tabella che contiene i dati si chiama Tabella1 ed ha la seguente
struttura:
ID                Contatore e chiave primaria
Cantante       Testo
Titolo            Testo
Testo            Si/no
Karaoke        Si/no
Usa una query di selezione che abbia il seguente codice SQL:
SELECT Tabella1.*
FROM Tabella1
WHERE (((IIf(IsNull(DLookUp("ID","Tabella1","Cantante=" & Chr$(34) &
[Cantante] & Chr$(34) & " And Titolo=" & Chr$(34) & [Titolo] & Chr$(34) & "
And Testo =" & True & " And Karaoke=" & True)),1,0))=1) AND
((Tabella1.Testo)=True));
Quanto sopra funziona a condizione che i campi Testo e Karaoke hanno un tipo
dati Si/no; se non è così modifica di conseguenza la WHERE e se non riesci a
farlo da solo rifatti vivo.


((Tabella1.Testo)=True));
Splendida idea l'uso della DLookUp

 Splendida idea l'uso della DLookUp
    Diciamo che e' un'idea e basta. Oppure diciamo che e' splendida la
logica della soluzione. Ma, per definizione, l'uso delle funzioni di
aggregazione nelle query non e' mai splendido.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------