Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Query Select Particolare
mercoledì 24 febbraio 2010 - 17.30
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Furetto80
Profilo
| Newbie
14
messaggi | Data Invio:
mer 24 feb 2010 - 17.30
Ciao ho una tabella su MSSql 2005 express con ID e 4 campi Classe1, classe2, classe3, classe4.
Li riempio con la frutta:
1 | PERA | MELA | PESCA | BANANA
2 | PERA | BANANA | PESCA | PESCA
3 | MELA | MELA | BANANA | BANANA
4 | MELA | PERA | BANANA | PESCA
5 | PERA | PERA | PERA | PERA
e cosi via, tutte le combinazioni possibili... con ripetizioni e inversioni.
Nella pagina web che ci si appoggia, l'utente ha 4 caselline di ricerca.
Ognuna con una tendina visualizza i 4 frutti.
L'utente a questo punto selezionando la prima tendina mette il primo frutto e preme CERCA.
Devono uscire tutti i casi in cui il frutto scelto compare ALMENO 1 volta : nella prima o seconda colonna.
Frutto1 | xxxxxx | xxxxx | xxxxx
xxxxxx | Frutto1 | xxxxx | xxxxx
L'utente sceglie un frutto selezionado le prime 2 caselline.
Devono uscire tutte le righe di DB nel quale l'accoppiata frutto1 e frutto2 siano nelle prime 2 colonne.
Quindi devono saltar fuori:
Frutto1 | Frutto2 | xxxxx | xxxxx
Frutto2 | Frutto1 | xxxxx | xxxxx
L'utente a questo punto sceglie anche il terzo frutto dalla terza casella:
Quindi devono saltar fuori: Frutto1 | Frutto2 | Frutto3 | xxxxx
Frutto1 | Frutto2 | xxxxxx | Frutto3
Frutto2 | Frutto1 |xxxxx | Frutto3
Frutto2 | Frutto1 | Frutto3 | xxxxx
L'utente a questo punto sceglie anche il terzo frutto dalla terza casella:
Non sto a fare le combinazioni ma in questo caso deve uscire le righe nel quale i 4 frutti sono tutti e 4 presenti univocamente all'interno della tabella.
So che è una bella rogna, il fatto è spero in 3 cose:
-O qualcuno ha già affrontato il problema e sà come risolverlo
-O un santo, più intelligente di me, passa di quà e crea una query di dio
-O mi arrendo :-)
carloalberto
Profilo
| Junior Member
166
messaggi | Data Invio:
mer 24 feb 2010 - 18.04
... non sono un santo ... :-)
affronterei il problema 'scomponendolo' , cio creando delle viste semplici ...piuttosto che una query complesa
... piu tardi se non arriva la soluzione ci provo :-)
Tirechan
Profilo
| Newbie
13
messaggi | Data Invio:
gio 25 feb 2010 - 10.05
Ma non basta fare una query di questo tipo:
Select *
From (
Select *
From (
Select *
From (
Select *
From Tabella
Where Classe1 = 'Frutto1' or Classe2 = 'Frutto1'
) T2
Where Classe1 = 'Frutto2' or Classe2 = 'Frutto2'
) T3
Where Classe3 = 'Frutto3' or Classe4 = 'Frutto3'
) T4
Where Classe3 = 'Frutto4' or Classe4 = 'Frutto4'
o mi sfugge qualcosa?
Ciao
Davide
Furetto80
Profilo
| Newbie
14
messaggi | Data Invio:
lun 1 mar 2010 - 11.05
Ciao, ho provato il tuo metodo nella situazione in cui i frutti sono 3.
DECLARE @C1 AS varchar(20)
DECLARE @C2 AS varchar(20)
DECLARE @C3 AS varchar(20)
SET @C1='Mela'
SET @C2='Pera'
SET @C3='Banana'
Select * From (
Select * From (
Select * From (
Select * From (
Select * From (
Select * From Strategie3v3
Where Classe1 = @C1 or Classe2 = @C2 or Classe3 = @C3 ) T1
Where Classe1 = @C2 or Classe2 = @C3 or Classe3 = @C1 ) T2
Where Classe1 = @C3 or Classe2 = @C1 or Classe3 = @C2 ) T3
Where Classe1 = @C1 or Classe2 = @C3 or Classe3 = @C2 ) T4
Where Classe1 = @C2 or Classe2 = @C1 or Classe3 = @C3 ) T5
Where Classe1 = @C3 or Classe2 = @C2 or Classe3 = @C1
Ma non riesco a farla andare...
Mi sai aiutare? :-(
Furetto80
Profilo
| Newbie
14
messaggi | Data Invio:
lun 1 mar 2010 - 11.17
Fixato cosi..
Select * From Strategie3v3
Where
(Classe1 = @C1 AND Classe2 = @C2 AND Classe3 = @C3) or
(Classe1 = @C2 AND Classe2 = @C3 AND Classe3 = @C1) or
(Classe1 = @C3 AND Classe2 = @C1 AND Classe3 = @C2) or
(Classe1 = @C1 AND Classe2 = @C3 AND Classe3 = @C2) or
(Classe1 = @C2 AND Classe2 = @C1 AND Classe3 = @C3) or
(Classe1 = @C3 AND Classe2 = @C2 AND Classe3 = @C1)
Non è sto gran che ma funziona..
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !