Newsgroup: it.comp.lang.visual-basic
Titolo: istruzione sql

Dunque ho una tabella con tre campi,uno booleano(si/no),uno con una data e
l'altro con dei numeri;come posso fare con una istruzione sql ad ordinarli
nel seguente modo:
secondo la data;
a parità di data in ordine crescente dei numeri se il booleano è uguale a si
in ordine decrescente se il booleano è uguale a no
Si può ottenere da un unica istruzione sql?Come?Grazie a tutti voi

Non credo che tu possa fare una discriminazione in base al campo boolean.
Secondo me non si può fare con sql.

 ha scritto nel messaggio
news:GC4_6.1044$363....@news.infostrada.it...


 ha scritto nel messaggio
news:9hap68$4b4$1...@nreadA.inwind.it...


 > > Si può ottenere da un unica istruzione sql?Come?Grazie a tutti voi
non conosco sql, ma non puoi fare due query coi numeri ordinati come
vuoi e poi fondere i risultati in un solo rs ?

 Forse non si fa!Boh!
non sono un mega esperto di SQL (anzi...), ma credo che con una sola
istruzione, in una sola botta cioe, non sia possibile.
se usi ado puoi fare cosě.
' cnn č la connection e rst e rst1 sono i recordset.
set rst=cnn.execute ("SELECT * FROM Tabella Order by Data,
Numero",Ra,adcmdtext)
set rst1=rst                        ' ovviamente qui dipende anche da quanto
č grosso il risultato della query.
' ora rst contiene solo quelli con SiNo=true.
rst.filter="SiNo=true"        ' controlla la sintassi
rst1.filter="SiNo=False"
' e dovrebbero (spero) essere in ordine...
MarioH

 in ordine decrescente se il booleano è uguale a no
SELECT * FROM Tabella ORDER BY data, IIf( booleano, numero, -numero )
Solo che non so se funziona con motori diversi dal Jet.
EMG

"gpl"

SELECT * FROM
SELECT *
FROM TUATabella
WHERE CampoBooleano=True
ORDER BY CampoNumerico
UNION
SELECT *
FROM TUATabella
WHERE CampoBooleano=False
ORDER BY CampoNumerico DESC )
ORDER BY CampoData;
nonsonostatoio

 ORDER BY CampoData;
ecco, esattamente quello che dicevo :)
ciao, a.

Ciao,
neppure io sono un grande esperto, ma, a spanna, il risultato ottenuto
parrebbe:
01/01/01 Vero
02/01/01 Vero
03/01/01 Vero
04/01/01 Vero
01/01/01 Falso
02/01/01 Falso
03/01/01 Falso
04/01/01 Falso
mentre dovrebbe essere:
01/01/01 Vero
01/01/01 Falso
02/01/01 Vero
02/01/01 Falso
03/01/01 Vero
03/01/01 Falso
04/01/01 Vero
04/01/01 Falso
beppe
-----------------------------------------------------------
Visita il sito del WWF AltoFerrarese
http://www.comune.cento.fe.it/wwfaf
-----------------------------------------------------------

 ha scritto nel messaggio
news:GC4_6.1044$363....@news.infostrada.it...


 wrote in message
3B391024...@flashnet.it...


 beppe
La 'S' di SQL sta per 'structured', = 'strutturato'.
L'istruzione risultante dall'unione delle 2 istruzioni select più interne è
nidificata in quella principale, che si occupa proprio di ordinare
nuovamente il risultato per data.
Le istruzioni 'select', insomma, sono 3.
2 di esse generano, per effetto dell'operatore UNION una query di unione
temporanea; mentre quest'ultima, che pur sempre è una 'relazione', viene
passata come parametro valido alla clausola FROM della prima istruzione
SELECT.
Globalmente risulta una query di selezione.
Mi spiace aver creato confusione per il fatto di aver dimenticato la
parentesi di apertura dopo la prima clausola select.
Ma certo potrei cavarmela dicendo: "nonsonostatoio!" :-)
perché no,
nonsonostatoio