Newsgroup: it.comp.lang.visual-basic
Titolo: HELP sql

ciao a tutti,
ho un problema con sql che non riesco a risolvere,c'è qualcuno
in grado di aiutarmi?
Ho un db access con una tabella con 9 campi,collegata a un datacontrol
fra questi campi c'è un campo data con data,ora,min,sec,ora ho
bisogno di estrarre tutti i campi e tutti i record della tabella che
vengono
visualizzati in un datagrid evitando i record duplicati in base
a soli 4 campi.
Ho provato diverse soluzioni con 'select distinct',ho provato a
indentare
ma ottengo solo errori.
Mi servirebbe una istruzione tipo'select * from tabella distinct campo1,
campo2,campo x  order by campo x.
Spero d'aver reso l'idea.
Uso win98se vb5 con sp3
Ringrazio vivamente chi mi risponderà.
Guglielmo
Togliere nonce per rispondere

 campo2,campo x  order by campo x.
??
SELECT DISTINCT campo1, campo2, campoX  FROM tabella ORDER BY campoX


ciao jimi,
la tua query mi dą solo i campi dopo distinct mentre io ho bisogno
di tutti i campi perņ purgati dei doppioni presenti nei campi dopo
distinct.
ciao


 doppioni presenti nei campi dopo distinct.
Provo ad immaginare.
Dato che chiedi un filtro basato sulla verifica della duplicazione
dei valori in campi multipli, potrei intendere in questo modo:
Tabella composta da 5 campi
    a1              Testo
    idx(1-4)     Numerico   Integer
    idx(1-3)    Campi filtro
Tabella1
___________________________
    a1         idx1   idx2   idx3    idx4
========================
Valore1      1        1        1        1         <- Da eliminare (1,1,1)
Valore2      2        2        2        2         <- Rimane (2,2,2)
Valore3      3        2        3        3
Valore4      3        3        4        4
Valore5      1        1        1        5         <- Da eliminare (1,1,1)
========================
Filtro          ^        ^        ^
La query va impostata come segue:
"SELECT * FROM Tabella1 _
WHERE Tabella1.idx1 NOT IN _
(SELECT [idx1] FROM [Tabella1] As tblAlias _
GROUP BY [idx1],[idx2],[idx3] _
HAVING Count(*) > 1) _
ORDER BY Tabella1.a1;"
Potrei intendere anche che vuoi ottenere un recordset che escluda
i record in cui i campi sottoposti a filtro contengono lo stesso valore:
Tabella2
___________________________
    a1         idx1   idx2   idx3    idx4
========================
Valore1      1        1        1        1         <- Da eliminare (1,1,1)
Valore2      2        1        2        2
Valore3      3        2        3        3
Valore4      3        3        4        4
Valore5      4        4        4        5         <- Da eliminare (4,4,4)
========================
Fltro           ^        ^        ^
La query diventa:
"SELECT * FROM Tabella2 _
WHERE Tabella2.idx1 NOT IN _
(SELECT [idx1] FROM [Tabella2] As tblAlias _
GROUP BY [idx1],[idx2],[idx3] _
HAVING Count(*) = 1 _
AND [idx1] = Tabella2.idx2 _
AND  [idx2] = Tabella2.idx3)
ORDER BY Tabella2.a1;"
A questo punto, anche se volevi ottenere un altro risultato,
hai la logica che ti permette di farlo.

 tecniche di decrittazione ?
Complimenti per la pazienza. Io mi ero gia' stufato. Avevo gia' avuto a che
fare con la stele di Rosetta per tutto il giorno ;.)
Ciao
Aldo
P.S. Sara' mica che sforzandosi di porre le domande in modo comprensibile
alla fine si troverebbero le risposte da soli ?

 Fltro        ^        ^        ^
tutti i campi e tutti i record della tabella devono essere visualizzati
in una griglia,esclusi quelli da eliminare.
Ti ringrazio comunque per la risposta e il lavoro che hai fatto per
rispondermi.
Mentre non ringrazio certamente chi risponde solo per fare polemiche,si
vede che non ha niente altro da dare.

 > Fltro        ^        ^        ^
ADESSO TI SEI SPIEGATO BENE !!!!!!!
Non voglio assolutamente fare polemiche, ma in questo NG c'è tanta gente che
si lamenta
perchè nessuno risponde ai messaggi, e non capisce che è solo perchè non si
spiegano
e quindi chi legge "passa oltre....." (fine della polemica).
Allora, passando a cose più serie......
Questa è una mia query che uso:
select distinct titolo,genere,attori,regista,tipo,film from ....... where
........ ecc. ecc.
mi sembra però che il distinct venga eseguito solo sui campi selezionati,
quindi, tu puoi
fare una cosa del genere
select distinct c2,c3,c4 from tabella order by campo x
però (non vorrei sbagliare) non puoi più sapere il valore di c1 e di c5, e
quindi non li
puoi visualizzare sulla gridglia come volevi
Non so se può andarti bene
Ciao
Sergio

 Ho iniziato con sql da poco e non so cosa si può o non si può fare,
be', si puo' cominciare a studiarlo. non so se gli url seguenti vanno ancora
tutti. pero' ad alcuni un'occhiata gliela darei subito. ciao, a.
[sql links]
directory listing di yahoo
http://clubs.yahoo.com/clubs/structuredquerylanguage
faq:
http://epoch.cs.berkeley.edu:8000/sequoia/dba/montage/FAQ/SQL_TOC.html
tutorial
http://www.geocities.com/ResearchTriangle/Node/9672/sqltut.html
altri siti:
ftp://ftp.idiom.com/pub/free-databases
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql2bnf.aug92.txt
http://thebestweb.com/db/sqlrefs.asp
exe free per fare un po' di prove
http://www.lizardfoot.com/SQLTrainer/
altro tool per db da registrare ma free:
http://www.scm-consulting.co.uk
altri tool:
http://www.hughes.com.au/
http://stukenberg.com/toolbox/msql/


 > Fltro        ^        ^        ^
Se il filtro è dato dai campi c2, c3, c4 - non vedo perché
i record evidenziati dovrebbe essere eliminati, dato che,
nell'insieme, contengono dati differenti.
A te la palla.

 alla fine si troverebbero le risposte da soli ?
A volte sě, altre no. L'importante č fare lo "sforzo" :)

 Sergio
Hai capito perfettamente il problema,già provata ed è come tu
dici,grazie
comunque.Penso sia meglio che vada a cercare fra i links gentilmente
postati da Pal.
per Jimi
Mi sembra che ti "gusta" non poco la polemica ,io preferisco dedicarmi
ad altre cose e con l'aiuto dei links di Pal forse riuscirò a trovare
qualcosa.
Considero chiuso l'argomento.
Saluti a tutti
Guglielmo

 Considero chiuso l'argomento.
per parte mia grazie, ma una parola. non certo per difendere jimi, che non
ne ha alcun bisogno. c'e' almeno una differenza: io in genere mi limito a
rimandare a links dove persone esperte si sono spese, in genere gratis. jimi
_e'_ una di quelle persone esperte, e di solito non fa proprio polemiche,
risponde a tono e basta. guarda le sue risposte e vedrai, anche solo da come
taglia le citazioni, che e' abituato a dare alle parole un valore, cosa, di
questi tempi, a dir poco rara. e preziosa.
ciao, a.