Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812

    Query per due tabelle: "unione" e ordinamento risultati

    donqua...

    ho due tabelle (che non hanno relazione dirette tipo due campi numerici da confrontare), da queste estraggo i record del periodo scelto (può essere il giorno o il mese)

    quindi vorrei "unire" le due estrazioni in un unico recordset...
    non capisco se ci sia già la funzione o se devo trovare altra soluzione
    suggerimenti?



    edit:
    provo ad aggiungere qualcosa perché la procedura è un po' insolita.

    della prima tabella stampo TUTTO, ovvero i nomi dei campi e tutte le celle.
    così come si vede se si apre a video una tabelle di access
    quello che dovrei fare è aggiungere la/le colonna provenienti dalla seconda tabella
    forse così si capisce meglio la questione...
    e se possibile ordinare tutto assieme
    ce la posso fare?


    ri-edit:
    ho capito che ce la potrei fare si con UNION ma il fatto di non conoscere in anticipo tutti i nomi dei campi mi obbliga a svolgere almeno un'altra query ed altre modifiche...
    uhmm..

  2. #2
    una traccia

    codice:
    SELECT * FROM
    (
    SELECT elenco_colonne FROM tabella1 WHERE condizione
    UNION
    SELECT stesso_elenco_colonne FROM tabella2 WHERE condizione
    )
    ORDER BY colonne_da_ordinare
    stesso_elenco_colonne vuol dire che le colonne debbono essere le stesse per numero e tipo; non interessa il nome in quanto puoi ovviamente usare degli alias


  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    ok...
    a me dalla seconda tabella mi servono solo due campi analoghi (risolti con alias) e altri due che non corrispondono per tipo.
    mentre dalla prima mi servono tutti.

    ora è così:
    codice:
    SELECT * FROM ( 
    SELECT id_record, data FROM tabellaUno 
    UNION ALL 
    SELECT id_vers as id_record, dataversamento as data 
    FROM tabellaDue ) ORDER BY id_record	"
    e funzica: mi restituisce bene i due campi e tutti i record, anche con numerazione doppia

    posso estrarli direttamente o devo inserire nel ciclo un'altra interrogazione?

    e posso sapere da quale tabella arrivano i record estratti?

  4. #4

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    ops, non ti avevo visto...

    non so come estrarre i campi di tabella uno, quelli che mancano in UNION.
    devo svolgere una query per ogni record estratto?
    e come identifico quello che arriva da tabelleUno o tabellaDue?

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    aggiungi un campo ad entrambe le select interne per avere la provenienza:

    select ... , '1' as provenienza ... union ... '2' as provenienza ...

    aggiungi i campi mancanti con lo stesso metodo:

    '' as se_testuale, 0 as se_numerico
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    azz... mi posso inventare i campi e non lo sapevo!
    quindi riesco a distinguere la provenienza


    per l'aggiunta di campi ancora non ho capito come recuperarli (a parte testo/numero)...
    cioè... devo inserirli anche se non esistono nell'altra tabella e simulare l'estrazione come sopra?

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    ovvero una roba tipo questa?
    codice:
    SELECT * FROM ( 
    SELECT id_record, data "&QUERYUNO&" FROM tabellaUno 
    UNION ALL 
    SELECT id_vers as id_record, dataversamento as data "&QUERYDUEconAlias&"
    FROM tabellaDue ) ORDER BY id_record	"
    dove QUERYUNO è la lettura dei NomeCampo di tabellaUno
    e QUERYDUEconAlias è la simulazione come indicato prima

    chiedo: è la strada più rapida o c'è di meglio?

  9. #9
    queryuno e querydue cosa contengono? scrivi la query esplicita, pls

  10. #10
    e poi, che db stai usando?

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.