Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Ordinamento a due condizioni

  1. #1
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Buongiorno a tutti, ho un problema di ordinamento con access;
    praticamente ho dei campi, tipo:

    Avviso----- numero ore (calcolato da un' espressione) e numero ordini (anch'esso calcolato)
    [testo]-----[numero]-----[numero]

    per necessita lavorative effettuo due query la prima con la funzione TOP 2 prendo Avviso----- numero ore /DESC e non è un problema visto che lavora in decimali, l'ordinamento e sempre ottimale,
    invece la seconda query sempre TOP 2 sui campi Avviso e numero ordini/DESC mi da problemi,
    visto che il campo numero ordini ci possono essere molti numeri uguali, vorrei che prendesse, a parità di numeri, in considerazione anche il campo numero ore per ordinare i primi 2
    spero di essermi spiegato
    Saluti
    ℹ️ Leggi di più su attila666 ...

  2. #2
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    credo che avresti fatto meglio a continuare il precedente post visto che trattasi di stesso argomento se nn capisco male o quantomeno mettere il link al precedente come richiamo.
    il link è questo https://masterdrive.it/microsoft-acc...it-top-102902/

    se non ho capito male ti basta mettere TUTTI i campi di sort nella prima e la seconda la usi col TOP
    così non fosse ti invito a postare un set di dati in input come esempio e cosa vorresti ottenere in output, diversamente rischiamo che questo 3d si dilunghi in inutili post di spiegazione

  3. #3
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Si hai ragione parliamo di quel link, per quanto rigurarda il tuo suggerimento, ci ho provato, ma o sbaglio qualcosa, o non funziona, provo a fare un db leggero e appena fatto lo allego.
    ℹ️ Leggi di più su attila666 ...

  4. #4
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Se non ho capito male tu vuoi una query che visualizzi i campi così:
    Avviso | NumeroOre | NumeroOrdini
    ma vuoi che l'ordinamento sia
    1. Avviso
    2. NumeroOrdini
    3. NumeroOre
    Giusto?
    Se sì, in visualizzazione struttura query devi avere 4 colonne
    Avviso: Visualizzato Sì, Ordinamento Decrescente
    NumeroOre: Visualizzato Sì (senza ordinamento)
    NumeroOrdini: Visualizzato Sì, Ordinamento Decrescente
    NumeroOre: Visualizzato No, Ordinamento Decrescente
    ℹ️ Leggi di più su OsvaldoLaviosa ...

  5. #5
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    @OsvaldoLaviosa, grazie per la risposta, ma non è cosi, faccio due query separate perché il risultato deve avere come prima colonna l'avviso, tipo cosi;

    avviso --------- ore------ordini
    pre_324 -------45,7------5
    pre_546--------34,9-----4


    da una tabella composta in questo modo
    avviso----------data/ora inizio----------------data/ora fine-------
    pre_324 01/01/2021 08:00 01/02/2021 09:13
    pre_546 02/02/2021 07:15 02/02/2021 07:15
    pre_324 01/02/2021 04:15 02/02/2021 17:03
    etc..

    Quindi l'avviso deve aver collegato in una colonna i due maggiori valori "ora"(che calcolo con DATEDIFF) e nella seconda colonna i due maggiori valori "ordini"(numero di record in cui è presente l'avviso) e con una query questo non è possibile, comunque cercherò di allegare un db con un esempio funzionante appena possibile
    ℹ️ Leggi di più su attila666 ...

  6. #6
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Ho risolto in questo modo:
    SELECT TOP 2 * FROM (SELECT DB.[Codice Etichetta], Round(Sum(IIf(([DB].[Data creazione avviso]>=#3/18/2021# And [DB].[Data creazione avviso]<=#3/31/2021#+1 And ([Data Fine Lavori] Is Not Null Or [Data Chiusura avviso] Is Not Null)),(IIf(([Data Fine Lavori] Is Not Null),DateDiff('s',[Data creazione avviso],[Data Fine Lavori]),DateDiff('s',[Data creazione avviso],[Data Chiusura avviso]))/3600))),1) AS Ore
    FROM DB
    WHERE (((DB.[Tipo Ordine])="z002") AND ((DB.[CdL Responsabile])="ilm") AND ((DB.[Tipo Oggetto])="y_elv") AND ((DB.[Stato avviso])="chiuso"))
    GROUP BY DB.[Codice Etichetta]
    HAVING (((Round(Sum(IIf(([DB].[Data creazione avviso]>=#3/18/2021# And [DB].[Data creazione avviso]<=#3/31/2021#+1 And ([Data Fine Lavori] Is Not Null Or [Data Chiusura avviso] Is Not Null)),(IIf(([Data Fine Lavori] Is Not Null),DateDiff('s',[Data creazione avviso],[Data Fine Lavori]),DateDiff('s',[Data creazione avviso],[Data Chiusura avviso]))/3600))),1))>0))
    ORDER BY Round(Sum(IIf(([DB].[Data creazione avviso]>=#3/18/2021# And [DB].[Data creazione avviso]<=#3/31/2021#+1 And ([Data Fine Lavori] Is Not Null Or [Data Chiusura avviso] Is Not Null)),(IIf(([Data Fine Lavori] Is Not Null),DateDiff('s',[Data creazione avviso],[Data Fine Lavori]),DateDiff('s',[Data creazione avviso],[Data Chiusura avviso]))/3600))),1) DESC , Sum(IIf(([DB].[Data creazione avviso]>=#3/18/2021# And [DB].[Data creazione avviso]<=#3/31/2021#+1 And ([Data Fine Lavori] Is Not Null Or [Data Chiusura avviso] Is Not Null)),1,0)) DESC) AS DATI;
    
    Grazie a tutti per l'attenzione
    ℹ️ Leggi di più su attila666 ...

  7. #7
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    che riassunto se non sbaglio è:
    1) ordino per TUTTI i criteri nella sub
    2) top 2 nella "padre"
    ... mi ricorda qualcosa
    Ultima modifica di muttley005; 15-04-2021 09:32 

  8. #8
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Quote Originariamente inviato da muttley005 Visualizza il messaggio
    ... mi ricorda qualcosa
    Si hai ragione la soluzione era praticamente quella, ma non so perchè non mi ordinava a due condizioni, qualche virgola di troppo forse
    ℹ️ Leggi di più su attila666 ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 6
    Ultimo Post: 26-03-2016, 23:22
  2. Condizioni multiple
    Da pgft nel forum Microsoft Excel
    Risposte: 15
    Ultimo Post: 13-03-2015, 18:10
  3. Ordinamento crescente Order by e ordinamento numero Max.
    Da raamino73 nel forum Microsoft SQL Server
    Risposte: 3
    Ultimo Post: 19-04-2013, 17:12
  4. If..then....condizioni In Excel
    Da virginiello nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 31-01-2007, 14:43
  5. Condizioni multiple
    Da coccobil nel forum PHP
    Risposte: 4
    Ultimo Post: 22-05-2006, 21:14