Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Discussione: Query con 2 tabelle e record non presente in una

  1. #11
    Una soluzione può essere la seguente :
    codice:
    WHERE TabAna.AnaID IN (1059,274,591,45)
       ORDER BY 
           CASE TabAna.AnaID
                  WHEN 1059 THEN 0
                  WHEN 274 THEN 1
                  WHEN 591 THEN 2
                  WHEN 45 THEN 3
                  ELSE 9999
            END
    ma quando i casi sono qualche decina, come nel mio caso (!), che si fa ?
    Ci vorrebbe un'istruzione (che esiste in MySQL)
    ORDER BY FIELD( ....

  2. #12
    Una soluzione potrebbe essere la seguente
    codice:
    WHERE TabAnaAnaID IN (1059,274,591,45)
    ORDER BY 
        CASE TabAna.AnaID
            WHEN 1059 THEN 0
            WHEN 274 THEN 1
            WHEN 591 THEN 2
            WHEN 45 THEN 3
            ELSE 9999
        END
    ma quando i casi sono, come nel mio caso (!) qualche decina, che si fa ?
    Ci vorrebbe un'istruzione (che esiste in MySQL)
    ORDER BY FIELD( ...

  3. #13
    Una soluzione potrebbe essere la seguente
    codice:
    WHERE TabAnaAnaID IN (1059,274,591,45)
    ORDER BY
        CASE TabAna.AnaID
            WHEN 1059 THEN 0
            WHEN 274 THEN 1
            WHEN 591 THEN 2
            WHEN 45 THEN 3
            ELSE 9999
        END
    ma quando i casi sono, come nel mio caso (!) qualche decina, che si fa ?
    Ci vorrebbe un'istruzione (che esiste in MySQL)
    ORDER BY FIELD( ...

  4. #14
    aggiungi alla tua TabAna un altro campo che indica l'ordine di presentazione e sorta la query per quel campo

  5. #15
    un domani che vuoi cambiare l'ordine ti basta intervenire sulla tabella e non devi invece cambiare tutte le query

  6. #16
    Quote Originariamente inviata da optime Visualizza il messaggio
    un domani che vuoi cambiare l'ordine ti basta intervenire sulla tabella e non devi invece cambiare tutte le query
    L'ordine di presentazione è assolutamente variabile e deve rispecchiare ciò che c'è in "IN (...)". I numeri lì riportati sono creati dinamicamente da una query. Proprio per questa ragione non è stato difficile creare, dinamicamente,
    CASE TabAna.AnaID
    WHEN 1059 THEN 0
    WHEN 274 THEN 1
    WHEN 591 THEN 2
    WHEN 45 THEN 3
    ELSE 9999
    END
    e la velocità non ne risente significativamente. In attesa che Microsoft implementi l'istruzione ORDER BY FIELD( ....
    posso dichiararmi soddisfatto della soluzione trovata, anche con il tuo aiuto.

  7. #17

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 © 2018 vBulletin Solutions, Inc. All rights reserved.