Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: Query possibile?

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    63

    Query possibile?

    Ciao a tutti, ho un problema che non riesco a risolvere ci sto letteralmente impazzendo...
    Supponiamo di avere qs tab

    ID | IDTIPO | NUMERO
    ---------------------
    1 | 1 | 20
    2 | 1 | 10
    3 | 1 | 30
    4 | 2 | 40
    5 | 2 | 20
    6 | 2 | 10
    7 | 3 | 50
    8 | 3 | 40
    9 | 3 | 30

    Se eseguo la query

    SELECT
    prova_tipo.ID,
    prova_tipo.IDTIPO,
    Min(prova_tipo.NUMERO) AS `MIN`
    FROM
    prova_tipo
    GROUP BY
    prova_tipo.IDTIPO

    per cercare il minimo prezzo dei vari IDTIPO ottengo:

    ID | IDTIPO | NUMERO
    ---------------------
    1 | 1 | 10
    4 | 2 | 10
    7 | 3 | 30

    Query giusta dal punto di vista dei minimi ma non dall'ID!!!!!!! In pratica i valori sono stati sciftati in alto andando a prendere il primo ID di IDTIPO...

    Ho provato anche a prendere i valori minimi tramite una subquery ma la cosa non funziona in quanto se vi sono due numeri uguali fa casino lo stesso...

    Come può ottenersi la query

    ID | IDTIPO | NUMERO
    ---------------------
    2 | 1 | 10
    6 | 2 | 10
    9 | 3 | 30

    che è quella che voglio?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    ma quindi tu sei uno di quelli che non vuole imparare, ma viene qui per ottenere soluzioni pronte e gratis?
    http://forum.html.it/forum/showthrea...readid=1382957

  3. #3
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    SELECT
    (select id from test as t where t.numero = min(test.numero) and idtipo = test.idtipo) as id,
    idtipo,
    min(numero) as tot
    FROM
    test
    group by idtipo

    forse si può fare anche usando distinct
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    63
    Perchè questa è una soluzione pronta? A cosa servirebbe il forum se non per trovare spunti su come risolvere problemi che ti bloccano?

    Se non sai cosa rispondere al problema evita fare commenti inutili.....

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    63
    Ciao Agenti...
    mi dice che la subquery restituisce più righe... con il distinct come faresti?

    Grazie

  6. #6
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    SELECT
    (select id from test as t where t.numero = min(test.numero) and idtipo = test.idtipo limit 1) as id,
    idtipo,
    min(numero) as tot
    FROM
    test
    group by idtipo

    ma dovresti controllarla per bene
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  7. #7
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da napo3000
    Perchè questa è una soluzione pronta? A cosa servirebbe il forum se non per trovare spunti su come risolvere problemi che ti bloccano?

    Se non sai cosa rispondere al problema evita fare commenti inutili.....
    E' esattamente lo stesso problema dell'altra volta: nelle tue colonne nel elenco select, c'e' n'e' una non aggregata che non compare nella group by. E ti avevo dato la soluzione pronta.

    Il fatto che tu sia tornato dopo 2 giorni con la stessa domanda, significa che non ti sei nemmeno sforzato di comprendere lo "spunto", il che ci fa capire che genere di personaggio sei.

    E per concludere, ti dico che la soluzione di @agenti non funzionera mai, cosi come tu non sarai mai in grado di capire perche'

  8. #8
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    senti non ti sembra di esser eun pò eccessivo ?

    dai dati in mio possesso la query funziona..

    è possibile che ci sia più di un record con gli stessi idtipo e numero
    per questo ho detto che deve testarla bene.

    Ma ti prego vacci piano... con i modi.
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  9. #9
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    where t.numero = min(test.numero) and idtipo = test.idtipo limit 1
    Originariamente inviato da agenti
    senti non ti sembra di esser eun pò eccessivo ?

    dai dati in mio possesso la query funziona..

    è possibile che ci sia più di un record con gli stessi idtipo e numero
    per questo ho detto che deve testarla bene.

    Ma ti prego vacci piano... con i modi.
    magari avrai un mysql magico che riesce a join-arti in modo pertinente dei campi con una relazione basata su un risultato dinamico e un and
    Dacci il sorgente

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    63
    Bubi la tua query non funziona, perchè hai fatto l' IN sui numeri e non va bene nel caso ci siano due numeri uguali...
    Comunque se sono ancora qui con qs problema significa che da 2giorni ci sono sopra.... finiscila di fare il poliziotto del forum....

    Con la soluzione di AGENTI il risultato è

    1 - 1 - 10
    4 - 2 - 10
    7 - 3 - 30

    Non ci siamo ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.