Newsgroup: it.comp.appl.access
Titolo: differenze tre due sql

salve a tutto il ng. non riesco a capire come mai i deu sql che seguobo
restituiscono un numero di record differente
SELECT Sdo01b2s.[Numero Scheda]
FROM Sdo01b2s
GROUP BY Sdo01b2s.[Numero Scheda], Sdo01b2s.[Codice IStituto]
HAVING (((Sdo01b2s.[Codice IStituto])="130002" Or (Sdo01b2s.[Codice
IStituto])="130003" Or (Sdo01b2s.[Codice IStituto])="130004" Or
(Sdo01b2s.[Codice IStituto])="130005" Or (Sdo01b2s.[Codice
IStituto])="130006" Or (Sdo01b2s.[Codice IStituto])="130010" Or
(Sdo01b2s.[Codice IStituto])="130011" Or (Sdo01b2s.[Codice
IStituto])="130012" Or (Sdo01b2s.[Codice IStituto])="130013" Or
(Sdo01b2s.[Codice IStituto])="130039" Or (Sdo01b2s.[Codice
IStituto])="130041" Or (Sdo01b2s.[Codice IStituto])="13001000" Or
(Sdo01b2s.[Codice IStituto])="13001100" Or (Sdo01b2s.[Codice
IStituto])="13001200" Or (Sdo01b2s.[Codice IStituto])="13001300" Or
(Sdo01b2s.[Codice IStituto])="13003900" Or (Sdo01b2s.[Codice
IStituto])="13004100"));
restituisce 58.295 record mentre
SELECT Count(Sdo01b2s.[Numero Scheda]) AS [ConteggioDiNumero Scheda]
FROM Sdo01b2s
WHERE (((Sdo01b2s.[Codice IStituto])="130002" Or (Sdo01b2s.[Codice
IStituto])="130003" Or (Sdo01b2s.[Codice IStituto])="130004" Or
(Sdo01b2s.[Codice IStituto])="130005" Or (Sdo01b2s.[Codice
IStituto])="130006" Or (Sdo01b2s.[Codice IStituto])="130010" Or
(Sdo01b2s.[Codice IStituto])="130011" Or (Sdo01b2s.[Codice
IStituto])="130012" Or (Sdo01b2s.[Codice IStituto])="130013" Or
(Sdo01b2s.[Codice IStituto])="130039" Or (Sdo01b2s.[Codice
IStituto])="130041" Or (Sdo01b2s.[Codice IStituto])="13001000" Or
(Sdo01b2s.[Codice IStituto])="13001100" Or (Sdo01b2s.[Codice
IStituto])="13001200" Or (Sdo01b2s.[Codice IStituto])="13001300" Or
(Sdo01b2s.[Codice IStituto])="13003900" Or (Sdo01b2s.[Codice
IStituto])="13004100"));
restituisce 76536
chi ha voglia di aiutarmi un momento? grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 restituisce 76536
Tralasciando i criteri che sono uguali, in una fai un raggruppamento su due
campi, cosicchč ti prende una sola coppia a fronte di due o piů coppie di
valori uguali.
Nella seconda fai solo un conteggio dei valori di un campo che equivale a
contare i record.
Non mi sembra poi cosě strano
Esempio:
A B C
A B D
E F G
A B F
E H I
E F L
La prima query con group sui primi due campi restituisce 3 record, perchč
dei 3 record A B ne prende uno cosiccome per i due E F.
La seconda query ti restituisce 6 record.
Controprova: la tua tabella contiene 76536 record?
Antonio

 Controprova: la tua tabella contiene 76536 record?
è proprio quello che sto cercando di capire.
sembrerebbe giusta la risposta 76536 dall'SQL ma in un altro archivio
analogo ma non uguale sembrerebbe giusta la risposta 58295...........
ho capito però la differenza
ciao Sabrina


 ciao Sabrina
Il conteggio ha senso se tu lo abbini ad un raggruppamento.
Cioč, se tu raggruppi per uno o piů campi, poi prendi uno di questi campi e
ci metti conteggio, allora per ogni combinazione diversa, ti dice quante ce
ne sono, anche se poi te ne restituisce una sola
Antonio

 ne sono, anche se poi te ne restituisce una sola
allora per contare quanti record su una tabella mi verificano una certa
condizione (scritta nella query precedente) allora io devo fare come nella
query che restituisce 7536 record ..................ma allora i conti non
tornano non dal punto di vista informatico ma da tutti gli altri !!!!!!!
sabrina


 tornano non dal punto di vista informatico ma da tutti gli altri !!!!!!!
Se tu devi contare SOLO i record che verificano una condizione NON fai
nessun raggruppamento. Fai una semplice query di selezione, ci metti i
criteri WHERE, la lanci, il numero dei record č il numero cercato.
L'altro caso č utile quando tu vuoi contare contemporaneamente le diverse
tipologie di record secondo certe condizioni.
Per esempio, se vuoi usare per ogni provincia quanti iscritti ci sono,
raggruppi e conti per il campo provincia. Se vuoi sapere per ogni provincia
divisi per maschi e femmina, raggruppi per provincia e sesso e conti per uno
di questi campi.
Ma se vuoi sapere quanti iscritti ci sono su RM, fai una semplice query con
criterio RM e vedi quanti record restituisce
Antonio

 Antonio
ok ok mi č chiaro č giusto 76.... ma ho 20000 ricoveri in puů di quanto
dovrebbero essre !!!!!!!! Domani a mente fresca secondo me svelo l'arcano
ciao sabrina


 dovrebbero essre !!!!!!!! Domani a mente fresca secondo me svelo l'arcano
Oppure potremmo discuterne stasera a cena...
he ehe hee hehe h
Antonio
P.S.
Ma tu sarai mica la Dr. Weaver?!?!
Se č cosě mi sa che niente invito a cena... :-P