358 messaggi dal 11 luglio 2003
Dei risultati della prima query non mi "piace" che mi visualizza per esempio:
dataestrazione campo
1939/02/18 21
1939/03/18 12
io mi vorrei una cosa del genere:
dataestrazione campo
1939/02/18 21
1939/02/18 12
1939/03/18 12
1939/03/18 21
cioè tutte le estrazioni dove sia stato estratto sia il numero 21 che il 12 in prima posizione.
Altre idee?

No comment...
SELECT data, primo
FROM estr
WHERE primo = '12' OR primo = '21'

Ormai programmano tutti... ma la professionalità appartiene a pochi
358 messaggi dal 11 luglio 2003
Pensiamo ad un piccolo numero di estrazioni. Esempio 2 estrazioni = 20 record(ogni estrazione ha 10 record, uno per ogni ruota). Mettiamo caso che in una estrazione ci sia su bari il 12 e sull'altra estrazione ci siano il 12 su cagliari ed il 21 su Milano. Voglio che la query mi restituisca solo la seconda estrazione che contiene sia il 12 ed il 21 ma non la prima che contiene solo il 12 su Bari. Penso sia chiaro...
Secondo me è proprio il concetto dell'OR che non va bene(è ovvio che un record o è 12 oppure è 21, ma io devo guardare sui 10 record che compongono un'estrazione)
Spero solo di non dover fare tutto da codice, si rallenterebbe parecchio e non solo...
Ciao e grazie per l'aiuto.

No comment...
17 messaggi dal 04 ottobre 2007
Ciao,
la butto lì....dovresti fare una vista (Es: v_estrazionepergiorno) e mettere sole la prima estrazione in orizzontale. Mi spiego meglio che non mi sono capito:

Es. Tabella strazioni
18/06 MILANO 21,2,78,85,...
18/06 ROMA 14,8,23,59,...
18/06 BARI 12,21,19,15,...
18/06 NAPOLI 47,56,89,65,...
.
.

es. Query
18/06 21,14,12,47,....

poi eseguirai una selezione sulla vista e farai le varie combinazioni cosi da verificare che per ogni record della vista ci sia sia il 12 che il 21.

Non mi viene nulla in mente oltre questo.
mi spiace degli esempi poco chiari, ma ho fatto del mio meglio.

ciao e buon lavoro
Simonexxx
mardok30 ha scritto:
Pensiamo ad un piccolo numero di estrazioni. Esempio 2 estrazioni = 20 record(ogni estrazione ha 10 record, uno per ogni ruota). Mettiamo caso che in una estrazione ci sia su bari il 12 e sull'altra estrazione ci siano il 12 su cagliari ed il 21 su Milano. Voglio che la query mi restituisca solo la seconda estrazione che contiene sia il 12 ed il 21 ma non la prima che contiene solo il 12 su Bari. Penso sia chiaro...
Secondo me è proprio il concetto dell'OR che non va bene(è ovvio che un record o è 12 oppure è 21, ma io devo guardare sui 10 record che compongono un'estrazione)
Spero solo di non dover fare tutto da codice, si rallenterebbe parecchio e non solo...
Ciao e grazie per l'aiuto.

Aaaaaaaaaaaaaaah!!!  Ora sei stato chiaro! TI giuro che prima non si era capito!Ci penso..

Ormai programmano tutti... ma la professionalità appartiene a pochi
Non conosco le performance e spero sia sql server, che ne dici di qualcosa del tipo:
SELECT Data, ncon
FROM est
WHERE (primo = '12')
INTERSECT
SELECT Data, ncon
FROM est
WHERE (primo = '21')

Ormai programmano tutti... ma la professionalità appartiene a pochi
358 messaggi dal 11 luglio 2003
Purtroppo il DB è ACCESS e la INTERSECT non è supportata(la INNER JOIN dovrebbe essere l'equivalente). Sto facendo delle prove...
Ciao e grazie

No comment...
358 messaggi dal 11 luglio 2003
Allora, ho fatto una query chiamata "Query12":
SELECT ruota, dataestrazione, numeroconcorso, primo
FROM estrazioni
WHERE primo = '12'
GROUP BY dataestrazione, numeroconcorso, primo, ruota;

un'altra chiamata "Query12":
SELECT ruota, dataestrazione, numeroconcorso, primo
FROM estrazioni
WHERE primo = '21'
GROUP BY dataestrazione, numeroconcorso, primo, ruota;

e poi:
SELECT Query12.ruota, Query12.dataestrazione, Query12.numeroconcorso, Query12.primo, Query21.ruota, Query21.primo
FROM Query12 LEFT JOIN Query21 ON (Query12.numeroconcorso = Query21.numeroconcorso) AND (Query12.dataestrazione = Query21.dataestrazione)
WHERE (((Query21.ruota)<>''));

ed ottengo il risultato voluto. Si può fare di meglio? oltre che cambiare Db...
Ciao

No comment...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.