Newsgroup: it.comp.lang.visual-basic
Titolo: La query che sclera...

Dunque il mio problema piu o meno � sempre uguale!
La tabella contiene ID - IDCarico - Evasa (booleano)
sto provando a effettuare una query che dovrebbe restituirmi il numero di 
record in cui Evaso � true, e contemporaneamente
quelli in cui � falso.
Impostando cos�
 "Select IdCarico, Count(Evasa) As [CP] From Attivit� " _
   & "Where Val(IDCarico) = '" & Charge & "'   Group By idCarico,Evasa"
ottengo una risposta strana! nel senso che a volte mi restituisce i veri, a 
volte i falsi.
E' pur vero che ho fatto talmente tante prove che non saprei piu cosa ho 
cambiato (!),
usando anche UNION con una query in cui specifico and evasa = 0 o -1,
ma non mi da quello che spero... :-(((((
Potreste darmi un suggerimento?
Grazie


Perch� hai messo in Group By Evasa ?

 ha scritto nel messaggio 
news:4a16c367$1...@news.x-privat.org...

Guarda, a dire il vero le ho tentate tutte! Il mio obiettivo sarebbe quello 
di ottenere un tracciato simile:
Id = 20  --- Evase = 15  --- Non Evase 17
Oppure: ID = 20 ------ Totali = 32 -- Evase 15    Non Evase 17
Ho solo capito che va fuori dalle mie possibilit�!! 

 ha scritto nel messaggio 
news:LAzRl.6233$9f6....@twister1.libero.it...

Anzi...se proprio devo dirtela come sta, ho impostato una TreeView, nella 
quale carico tutti i record con determinati requisiti,e creo i nodi 
principali
quindi, la scorro con un ciclo, e in base al tag che � il numero di Id 
appunto, eseguo [Ehm...dovrei eseguire] l'altra query, e in base
all'esito evase e non evase, creare i sottonodi relativi al nodo 
chiamante...
Ecco... 


Forse il tuo � solo un problema di approccio.
Magari pretendi di costruirti tutto l'albero in un solo passaggio con
una sola query.
Parlando in generale, in questi casi si hanno due possibilit�:
a) costruirsi l'albero in un solo passaggio utilizzando a cascata una
serie di query.
b) costruire la struttura principale dell'albero e poi aggiungere i
sottonodi al click sul nodo principale eseguendo le opportune query.
Ti consiglio di provare entrambe le cose e scegliere la procedura che
pi� fa al caso tuo.
Ciao

<RaimbautDeVaqueiras> ha scritto nel messaggio 
news:1gjd155c1lmv4s9e6...@4ax.com...

Si Rainbaut...d'accordo su tutto. La scelta della modalit� comunque, credo 
che sia
percorribile in itinere. Nel senso che, come dici tu, avevo creato in 
principio la query iniziale e al caricamento
di ogni noto, avrei voluto effettuare la sottoquery che aggiungeva il 
sottonodo.
Bene...anzi...malissimo! Ho pensato che fosse meglio prima caricare tutti i 
nodi, poi al click del mouse
caricare il sottonodo...e fin qui ok.
Il fatto � che credevo che con una sola query, si potesse avere quel tipo di 
risultato ed evidentemente sbagliavo.
Credo, (da quel che mi dici) che la via da seguire �:
Query ---> Nodi principali
 Click mouse ---> prima query per totale e aggiunta sottonodo
                    ---- seconda per Evase e aggiunta...
                    ----  terza per non evase etc
                    ultima per stabilire la percentuale di completamento ed 
aggiunta ultimo sottonodo.
E' corretto? 

E' corretto? 
In linea di massima, s�.
Se decidi  di creare i sottonodi ai vari click, ovviamente i nodi
padre dovranno avere, al primo caricamento, 
la propriet� expanded = False (e magari un'icona di folder chiusa, per
intenderci). Vedi tu se ti va bene.
Inoltre, (immagino che usi ado), al click potresti con una sola query
caricarti nel recordset *tutti* i dati relativi al singolo ID, e poi
fare rispettivamente un:
- .Recordcount, per il primo sottonodo 
- .Filter (True e False), per il secondo e il terzo
Avendo gi� a questo punto i valori che ti servono, ti calcoli poi la
percentuale e aggiungi l'ultimo.
Ovviamente vado a grandi linee perch� non ho presente la struttura del
tuo db.
HTH

 Id = 20  --- Evase = 15  --- Non Evase 17
volendo si può utilizzare un'unica query sostituendo nella clausola
from dell'ultima query in nome della query usata con il testo della
stessa es:
FROM (AttivitaRaggr LEFT JOIN
diventa
FROM ((SELECT IdCarico FROM Attività GROUP BY IdCarico) As
AttivitaRaggr LEFT JOIN
l'ho fatta al volo ora è la priam cosa che mi è venuta in mente ;)ù
ciao ciao

 Id = 20  --- Evase = 15  --- Non Evase 17
volendo si pu� utilizzare un'unica query sostituendo nella clausola
from dell'ultima query in nome della query usata con il testo della
stessa es:
FROM (AttivitaRaggr LEFT JOIN
diventa
FROM ((SELECT IdCarico FROM Attivit� GROUP BY IdCarico) As
AttivitaRaggr LEFT JOIN
l'ho fatta al volo ora � la priam cosa che mi � venuta in mente ;)�
ciao ciao
Ma pensa te...io davvero ti ringrazio...
Ho aperto il NG soltanto adesso, anche perch� consideravo chiuso il 3d!
Provo immediatamente queste soluzioni che hai postato, magari accorciano i 
tempi
di caricamento dei Nodes, anche perch� io ho seguito i pur valido consiglio
di Raimbaut, spezzettando l'esecuzione i query molteplici.
Grazie ancora di vero cuore