Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema UNION

  1. #1
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022

    Problema UNION

    Provo a spiegare il mio problema.
    Prendiamo ad esempio un singolo record della tabella ordini_dettagli.
    Nel record c'è un campo "stringa_mesi" che contiene una stringa di questo tipo: 000100010001, e un campo numerico che indica l'anno di riferimento, in questo caso 2009

    Ogni carattere della stringa "000100010001" rappresenta un mese, infatti sono esattamente 12 caratteri. Il valore può essere 0,1 oppure 2, ma questo non ci interessa per ora.

    Dunque, una funzione crea automaticamente una query come questa:

    codice:
    SELECT * FROM ordini_dettagli WHERE CAST(SUBSTRING(stringa_mesi, 4, 1) AS SIGNED) = 1 AND anno = 2009
    UNION 
    SELECT * FROM ordini_dettagli  WHERE CAST(SUBSTRING(stringa_mesi, 8 , 1) AS SIGNED) = 1 AND anno = 2009
    UNION 
    SELECT * FROM ordini_dettagli  WHERE CAST(SUBSTRING(stringa_mesi, 12 , 1) AS SIGNED) = 1 AND anno = 2009
    Io mi aspettavo di visualizzare tre volte lo stesso record (poichè il valore 1 è sulle posizioni 4, 8 e 12 della stringa), invece il record viene mostrato una sola volta...
    Ho provato anche ad usare un alias per il nome della tabella...

    Non riesco a focalizzare dov'è l'errore. Non so nemmeno se ho esposto chiaramente il mio problema.
    Riferendomi sempre all'esempio, il risultato che dovrei ottenere è visualizzare tre volte lo stesso record.

  2. #2
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Perdonatemi... UNION ALL

    A volte mi perdo in un bicchier d'acqua.

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.