Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] come fareste voi?

Salve a tutti,
ho questa situazione:
tabella1    ordini
tabella2    codici con quantit� da ricercare di questo tipo:
id;codice;qta;raggruppamento
dove ad ogni raggruppamento corrisponde 1 o piu' codici da cercare in un 
dato ordine nella tabella1
Ora vorrei evitare di fare 2000 query e appesantire il db... per ora ho 
pensato di fare cosi' ma non mi piace per niente:
faccio una select su tabella2 ed estraggo i codici e le qta da ricercare per 
ogni raggruppamento, e creo un array con codice;qta;booleano, lo ciclo e 
cerco se su tabella1 ci sono, se ci sono setto il booleano a 1 e passo 
all'indice dell'array successivo altrimenti esco visto che non soddisfa la 
mia ricerca.
Solamente che devo poi farlo per "n" raggruppamenti... e le query cominciano 
a diventare pesanti visto che tabella1 � molto grande...
avete idee su come affrontare il problema in modo diverso?
grazie 1000
A. 

 avete idee su come affrontare il problema in modo diverso?
Io non ho capito cosa devi fare.
Se puoi rispiegare meglio...

"Andrea [Work]" <andrea.isw...@gmail.invalid> ha scritto nel 
messaggio news:3v8j0lykwl6q$.14lz1onnfg8jx.dlg@40tude.net...

praticamente devo cercare se un dato ordine specificato dall'utente contiene 
delle accoppiate di codici e qta es:
devo ricercare se esiste il codice A con quantit� 8 e il codice B con 
quantit� 6 (raggruppamento 1) oppure il codice C con quantit� 2 e il codice 
D con quantit� 2 (raggruppamento 2)
spero di essermi spiegato meglio :)
ciao e grazie
A. 

 spero di essermi spiegato meglio :)
Bisogna vedere che campi hai nella tabella Ordini,
se posti le strutture magari ti si aiuta meglio.
A naso direi che ci sono dei riferimenti o al raggruppamento della 
tabella 2 oppure delle accoppiate codice/quantita uguali a quelle 
presenti in tabella 2.
se cos� fosse sarebbe sufficiente una join tra le due tabelle ... se ho 
capito il tuo problema.
ciao
stefano

 avete idee su come affrontare il problema in modo diverso?
Non si capisce una benemerita fava, ma ad occhio direi che un Inner 
Join della tabella su se stessa, o un Having, potrebbe risolvere in un 
secondo.
Ma senza un esempio, ï¿œ dura andare oltre...
Alberto


arriva l'esempio con tracciati :)
tabella 1 (ordini)
id
codice
quantita
...
tabella2 (codici da ricercare raggruppati)
id
codice
quantita
raggruppamento
facciamo un esempio:
tabella 1
id    codice    quantita
===============
1    codiceA    5
2    codiceB    4
3    codiceC    3
4    codiceA    2
5    codiceB    2
6    codiceD    3
tabella2
id    codice    quantita    raggruppamento
===========================
1    codiceA    2            1
2    codiceB    2            1
3    codiceC    3            3
4    codiceD    3            3
ora devo guardare i codici e qta per ogni raggruppamento della tabella2 e 
vedere se in tabella 1 trovo le corrispondenze... ad esempio, per il 
raggruppamento 1 avro' la corrispondenza, ma per il raggruppamento 2 no...
grazie a tutti
A. 


SELECT * FROM TABELLA1 AS T1 INNER JOIN TABELLA2 AS T2 ON T1.CODICE = 
T2.CODICE AND T1.QUANTITA = T2.QUANTITA WHERE T2.RAGGRUPPAMENTO = x
dove x va sostituito con il valore di raggruppamento che cerchi.
<curiosita>
Non so che applicazione sia ma la struttura mi sembra quanto meno "strana"
</curiosita>
ciao
stefano

> Ma senza un esempio, ï¿œ dura andare oltre...

Non si capisce quante corrispondenze ti servano. Almeno una, tutte?
Fai un esempio con due raggruppamenti, e non dici se il raggruppamento 
3 va bene o meno...
Comunque, se basta una sola corrispondenza per rendere 'valido' un 
raggruppamento, la cosa ï¿œ
SELECT DISTINCT T2.RAGGRUPPAMENTO
FROM TABELLA1 AS T1
INNER JOIN TABELLA2 AS T2
ON T1.CODICE = T2.CODICE
AND T1.QUANTITA = T2.QUANTITA
ORDER BY T2.RAGGRUPPAMENTO
Alberto