Newsgroup: it.comp.lang.visual-basic
Titolo: [SQL] -

Ciao a tutti,
    ho un quesito (l'ennesimo) per voi.
    Io vorrei scrivere una query del genere
    [pseudolinguaggio on]
    SELEZIONA campo1, (il numero delle volte che trovi il valore di campo1)
as un_nome_a_caso DA nometabella ORDINA PER un_nome_a_caso
    [pseudolinguaggio on]
    E'possibile fare una cosa del genere ? (sto usando My-Sql)
    O devo prendermi la mia bella croce e fare prima un distinct di campo1,
buttarlo in un vettore e per ogni elemento del vettore fare il count del
valore cercato ?
    Penso che si possa fare, con tutti i giochetti che fa My-Sql, non credo
che gli manchi proprio questo.  Spero :-v
Grazie per ogni eventuale risposta.
        Ciao, Rocco

     E'possibile fare una cosa del genere ? (sto usando My-Sql)
SELECT CAMPO1, RIPETIZIONI=COUNT(1) FROM TABELLA GROUP BY CAMPO1
Alberto

     [pseudolinguaggio on]
Una possibilità, da adattare:
select Tab1.codice_voce, (select count (codice_voce) from Tab2 where
Tab2.codice_voce=Tab1.codice_voce) as totale_volte from Tab1 Order By
Tab1.codice_voce

 ha scritto nel messaggio
news:4btA9.24862> SELECT CAMPO1, RIPETIZIONI=COUNT(1) FROM TABELLA GROUP BY
CAMPO1
Dimenticato Order by:
SELECT CAMPO1,
RIPETIZIONI=COUNT(1)
 FROM TABELLA
 GROUP BY CAMPO1
ORDER BY RIPETIZIONI
Ciao
Alberto

 ha scritto nel messaggio
news:BetA9.24872$8E3.7...@twister2.libero.it...

    Sicuramente ho sbagliato qualcosa io, ma con il mio front per My-Sql se
scrivo
    SELECT nomecampo, (select .....
    da qui in poi mi segnala un errore, ne deduco che non accetta un doppio
select.
    O sono io che non ho capito una mazza ?  ;-)))
Ciao, Rocco

 ORDER BY RIPETIZIONI
    Comunque sia è esattamente quello che cercavo ...
            Grazie 1000
Ciao, Rocco

 select.
Non so, io ho provato con Access, DAO e anche ADO. Va anche con ADO e SQL
Server.
Si chiama Subquery. Non so se MySQL le sopporta.

 Si chiama Subquery. Non so se MySQL le sopporta.
Non so neanche io.
Ma al limite potrebbe bastare mettere Nome_Campo=(Select...) anzichč
(Select...) AS nome_campo
Ciao
Alberto

 Alberto
    Niente, probabilmente My-Sql non lo ammette (peccato).
        L'unica soluzione è che sbaglio io qualcosa, le query
    Select pippo=(select max(Campo1)) order by pippo
            e
    Select (select max(Campo1)) as pippo order by pippo
    Fanno incavolare My-Sql. Io uso la versione server 3.23.41, può essere
sua la colpa ?
    C'è qualcosa di più aggiornato che ammette una cosa del genere ?
                Il dubbio mi assale ;-))
Ciao, Rocco

 sua la colpa ?
Adesso che hai postato il codice direi che farebbe incavolare chiunque....
Non vedi che la select è spaventosamente incompleta?
Select pippo=(select max(Campo1)) order by pippo << tua versione
Select pippo=(select max(Campo1) from Tabella1) From Tabella2 order by pippo
<< mia versione
in Sql-Server funziona. Ma credo sia abbastanza standard.
Spero veramente che il codice dhe hai postato qui sopra fosse solo un
esempio, e non quello che usi nella realtà.
Ciao
Alberto

 in Sql-Server funziona. Ma credo sia abbastanza standard.
    Evidentemente My-Sql lo fa in modo diverso. Vado a controllare
nuovamente sul sito per vedere se effettivamente lo sa fare o meno.
Grazie 1000.
        Ciao, Rocco

Dal sito 
www.mysql.com
, cerco subquery e tra i tanti risultati c'è questo
documento
******************************************************
3.5.2 The Row Holding the Maximum of a Certain Column
``Find number, dealer, and price of the most expensive article.''
In ANSI SQL this is easily done with a subquery:
SELECT article, dealer, price
FROM   shop
WHERE  price=(SELECT MAX(price) FROM shop)
In MySQL (which does not yet have subselects), just do it in two steps:
Get the maximum price value from the table with a SELECT statement.
Using this value compile the actual query:
SELECT article, dealer, price
FROM   shop
WHERE  price=19.95
Another solution is to sort all rows descending by price and only get the
first row using the MySQL-specific LIMIT clause:
SELECT article, dealer, price
FROM   shop
ORDER BY price DESC
LIMIT 1
NOTE: If there are several most expensive articles (for example, each 19.95)
the LIMIT solution shows only one of them!
******************************************************
Quindi niente da fare.
    Grazie a tutti di tutto .........
Ciao, Rocco

 In MySQL (which does not yet have subselects)
Incredibile...
Oltre alle transazioni, non supporta le subquery....
Peccato. Tutta concorrenza in meno per MSDE (che comunque è pressochè
perfetto, quindi di grossi miglioramenti in tema di affidabilità e
flessibilità non ne ha bisogno, ma quanto a performance.... si può fare di
meglio).
Ciao
Alberto