Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Problemi SQL per ordinare i records di una query...

    Ciao!

    Ho un semplice problema che mi sta letteralmente facendo impazzire..vi spiego:

    - ho un database piuttosto corposo contenente vari campi tipo "Nome", "Cognome",ecc. tra cui quelli che mi interessano che sono "Città" e "Provincia"

    - ora devo fare una query con inserimento da parte dell'utente del nome della provincia in modo da restituirmi tutti i records di quella provincia ma con un ordinamento particolare:

    - se inserisco "Milano" dovrebbe prima elencarmi tutti i records con "Città=Milano" e "Provincia=Milano" e poi tutti quelli delle province in ordine alfabetico cioè prima tutti i campi con "Città=Cinisello Balsamo" e poi quelli con "Paderno Dugnano" o "Sesto S.Giovanni" ad esempio.

    - In un certo senso funziona come le pagine bianche con prima il capoluogo e di seguito tutte le città di provincia ordinate alfabeticamente...

    - ho fatto un po' di prove ma non riesco a mettere prima tutti i "Milano" e poi le province...

    - tutto quello che ho prodotto è:
    SELECT nome, cognome, città, provincia, cap
    FROM random
    WHERE provincia=[insert_nome_provincia] and città<>[insert_nome_provincia]
    GROUP BY città, provincia, cap, nome, cognome
    ORDER BY cap DESC
    UNION SELECT nome, cognome, città, provincia, cap
    FROM random
    WHERE provincia=[insert_nome_provincia] and città=[insert_nome_provincia]
    GROUP BY città, provincia, cap, nome, cognome
    ORDER BY città, cap DESC;

    Il problema è che questo non fa prima la SELECT che mi restituisce "Milano" e poi quella successiva concatendandole una dopo l'altra ma fa proprio un'unione finale delle 2 SELECT ordinando i campi in modo sbagliato inserendomi i campi con "Città=Milano" all'interno e non all'inizio...
    Lo so che non è un problemone ma non ho trovato alcuna soluzione intelligente al momento, se qualcuno più esperto di me può darmi qualche suggerimento lo ringrazio infinitamente!

    Grazie a tutti!
    Ciao!

    Sandro

  2. #2
    avevo fatto una domanda analoga e mi hanno detto di usare il metodo filter (mi sembra) di access da applicare al recordset. se fai una ricerca qualcosa trovi. Io purtroppo non lo piu sviluppata la cosa e non so dirti l'implementazione

  3. #3
    prova a vedere qui:

    qui

  4. #4
    Ho letto il post che mi hai detto ma sinceramente nn sono così esperto, so a malapena quel po' di SQL... Questi filter dove dovrei usarli, nell'Editor di Visual Basic o che? Avevo pensato anche a una macro ma nn ho mica capito come funzionano in Access, le ho usate qualche volta semplici semplici in Excel associate a pulsanti o altri oggetti simili...

  5. #5
    puoi usare una select di select.

    se le tue select ti riportano tutte "nome, cognome, città, provincia, cap " e vuoi ordinare per "città, cap DESC"

    puoi fare

    codice:
    SELECT nome, cognome, città, provincia, cap FROM
    
    (
    
    SELECT nome, cognome, città, provincia, cap 
    FROM random 
    WHERE provincia=[insert_nome_provincia] and città<>[insert_nome_provincia] 
    GROUP BY città, provincia, cap, nome, cognome 
    ORDER BY cap DESC 
    UNION SELECT nome, cognome, città, provincia, cap 
    FROM random 
    WHERE provincia=[insert_nome_provincia] and città=[insert_nome_provincia] 
    GROUP BY città, provincia, cap, nome, cognome 
    ORDER BY città, cap DESC
    
    )
    
    ORDER BY città, cap DESC

    quella fra parentesi e' la tua query originale. in piu', evita di usare caratteri accentati nei nomi dei campi.


  6. #6
    La sintassi che mi hai scritto tu ha fatto incaxxare nn poco Access...Anche cercando di sistemare qcs qua e là continua a darmi errori di tutti i tipi, dalle parentesi, alla clausola FROM, ecc.
    Cmq la questione è che nn ho solo bisogno di raggruppare x città e ordinare, ho bisogno essenzialmente di mettere prima tutti i campi di un certo tipo, cioè quelli col capoluogo e in seguito tutti quelli delle città di provincia, ma in SQL mi sta diventando un'operazione impossibile...

  7. #7
    la sintassi e' corretta. al massimo puo' mancare l'alias (ma access normalmente se ne frega) di tabella dopo la parentesi di chiusura della union.

  8. #8
    Mah, a me è proprio Access che mi dà una manica di errori con sta sintassi, mi sa proprio che dovrò fare una macro...

  9. #9

  10. #10
    quale query?

    quella sopra:
    SELECT nome, cognome, città, provincia, cap
    FROM random
    WHERE provincia=[insert_nome_provincia] and città<>[insert_nome_provincia]
    GROUP BY città, provincia, cap, nome, cognome
    ORDER BY cap DESC
    UNION SELECT nome, cognome, città, provincia, cap
    FROM random
    WHERE provincia=[insert_nome_provincia] and città=[insert_nome_provincia]
    GROUP BY città, provincia, cap, nome, cognome
    ORDER BY città, cap DESC
    ?

    nn ne ho fatte altre...
    ma possibile che nn c'è un modo x concatenare 2 select tipo un append o roba del genere?
    thanx!

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.