Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Query "complessa"

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    167

    Query "complessa"

    Avrei bisogno di scrivere una query di interrogazione per un DB Access (*.mdb) che esegua la seguente operazione:

    Seleziona tutti i campi della tabella Articoli e ordinali in modo da stampare a video prima quelli in cui il campo Codice è uguale a (variabile1 oppure variabile2 oppure variabile3), poi tutti gli altri

    variabile1, variabile2, variabile3 sono tre brevi stringhe che prima di eseguire questa query ottengo da altre operazioni

    Purtroppo non riesco a scriverla, soprattutto dove voglio specificare quel tipo di ordinamento dei risultati

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: Query "complessa"

    Originariamente inviato da Leggero82
    Avrei bisogno di scrivere una query di interrogazione per un DB Access (*.mdb) che esegua la seguente operazione:

    Seleziona tutti i campi della tabella Articoli e ordinali in modo da stampare a video prima quelli in cui il campo Codice è uguale a (variabile1 oppure variabile2 oppure variabile3), poi tutti gli altri

    variabile1, variabile2, variabile3 sono tre brevi stringhe che prima di eseguire questa query ottengo da altre operazioni

    Purtroppo non riesco a scriverla, soprattutto dove voglio specificare quel tipo di ordinamento dei risultati
    SELECT 1 as numriga,* FROM articoli WHERE codice = variabile1 or codice=variabile2 or codice = variabile3
    UNION
    SELECT 2 as numriga, * FROM articoli WHERE codice <> variabile1 AND codice <> variabile2 and codice <> variabile3
    order by numriga

  3. #3
    oppure fai un select * from tabella e poi al recordset nella pagina gli applichi un FILTER

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    167
    la seconda opzione, quella mediante l'utilizzo di FILTER mi sembra un po' pesante, nel senso che prima estrae tutti i record e poi li "screma".

    nella prima invece non riesco a scrivere bene la stringa della query, vi posto quello che ho fatto:

    Sql="SELECT 1 as numriga,* FROM Articoli WHERE codice=pos1 or codice=pos2 or codice=pos3 UNION SELECT 2 as numriga, * FROM Articoli WHERE codice<>pos1 AND codice<>pos2 and codice<>pos3 order by numriga"

    questa query mi restituisce dei valori errati.
    ho usato molto poco l'unione tra due query finora e non capisco l'utilizzo di "numriga" per l'ordinamento dei record.
    in parole povere, che valori assumerà numriga?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    in parole povere, che valori assumerà numriga?
    1 per i record estratti dalla prima select e 2 per quelli estratti dalla seconda;
    ordinando per numriga vedi prima quelli uguali a uno dei parametri e poi gli altri, ma per come è scritta la query mi sa che l'order lo applica alla seconda select e non all'unione; prova a mettere le parentesi

    codice:
    Sql="( SELECT 1 as numriga,* FROM Articoli WHERE codice=pos1 or codice=pos2 or codice=pos3 
    UNION 
    SELECT 2 as numriga, * FROM Articoli WHERE codice<>pos1 AND codice<>pos2 and codice<>pos3)  order by numriga"

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.