Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273

    [mysql] min che esclude 0

    Ciao,

    ho una query che recupera i valori minimi di tre colonne fra una serie di righe:

    select min(campo1),min(cmpo2),min(campo3)

    avrei bisogno di escludere 0 dai i risultati e non so come procedere

    Non posso utilizzare clausole where perchè se, ad esempio, in una data riga campo1 = 0 non è detto che campo2 sia da escludere ecc..


    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    non sono sicuro di aver capito quello che vuoi... cosi?

    WHERE ( (campo1 = 0) AND (campo2 = 0) AND (campo3 = 0 ) )

  3. #3
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    Originariamente inviato da kodode
    non sono sicuro di aver capito quello che vuoi... cosi?

    WHERE ( (campo1 = 0) AND (campo2 = 0) AND (campo3 = 0 ) )
    no,
    io devo recuperare il valore minimo di tutte le colonne escludendo i valore 0

    la query fatta con il tuo where elimina le righe con tutti i campi a 0

    incrociata in or elimino tutte le righe con un valore=0, ma non è quello che mi serve, perchè dove campo1=0 magari campo2 ha un valore che mi serve.

    Dovrei propruio trovare il modo di escluderee il valore 0 dalla funzione min
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  4. #4
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    :master:

    select min(campo1),min(campo2),min(campo3)
    where campo1> 0 AND campo2> 0 AND campo3> 0

  5. #5
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    Originariamente inviato da kodode
    :master:

    select min(campo1),min(campo2),min(campo3)
    where campo1> 0 AND campo2> 0 AND campo3> 0
    no,
    come detto la clausola where scarta tutti i valori della riga e non va bene.

    ho risolto con una serie di subquery:

    Codice PHP:
    select  (select min(campo1from tabella where campo1!=0) as campo1,
     (
    select min(campo2from tabella where campo2!=0) as campo2,
     (
    select min(campo3from tabella where campo3!=0) as campo3
    from tabella 
    la query è un po' più onerosa della precedente, ma se non trovo niente di meglio...
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  6. #6
    Forse ho capito >D

    Vuoi che ti prenda i valori se almeno uno è maggiore a 0, quindi fai come ti hanno detto, ma metti OR e non AND

    ( (campo1 > 0) OR (campo2 > 0) OR (campo3 > 0 ) )

    Così basta che uno solo sia > a 0...
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

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.