Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Query "campi incrociati" orrizzontalizzare dei valori testo

    Ciao a tutti,
    data la tabella dove il campo2 è sempre di 2 caratteri:

    Campo1 Campo2
    Pippo A0
    Pippo A1
    Pippo A2
    Topolino A1
    Topolino B1

    Vorrei ottenere questo risultato
    Campo1 Campo2
    Pippo A0; A1; A2
    Topolino A1; B1

    Se si riesce via query andrebbe bene anche se sono concatenate senza ; e spazio (poi con una semplice funzione potre aggiungerli..)

    Idee?

  2. #2
    dipende dal db. per questo il regolamento impone di indicarlo

  3. #3
    grazie darkhero, avevo pensato anche io a una cosa del genere ma volevo cercare di fare tutto in SQL.
    l'ambiente di lavoro è access, avevo dimenticato di specificare che volevo cercare una soluzione SQL poi php vba o altro la logica di elaborazione rimane la stessa cambia solo il tipo di codice scritto.
    Thks cmq a tutti.. se qualcuno a qualche lampo di genio in SQL son qua..

  4. #4
    Soluzione:
    codice:
    Public Function ConcatenaStr(SKU As String, Brand As String) As String
    
    Static s_SKU As String
    Static s_strOutput As String
    Dim Separatore As String
    
    Separatore = ", "
    ' Verifico se si tratta di una sku
    If s_SKU <> SKU Then
      s_SKU = SKU           ' Memorizzo la sku
      s_strOutput = Brand   ' Inizializzo la variabile di output con il nome della brand
    Else
      s_strOutput = s_strOutput & Separatore & Brand ' Concateno il nome
    End If
    ' Valorizzo il valore di ritorno della funzione
    ConcatenaStr = s_strOutput
    
    End Function
    Alla fine ho fatto un misto tra codice e sql..
    Con il codice sommo tutte le stringhe (inserendo quindi questa funzione nella query)
    Poi con altre 2-3 query estraggo il MAX della lunghezza del campo2 risultante
    Così facendo mi ritrovo con un record univoco e la somma del campo stringa.

    80.000 record vengono processati in circa 3-4 secondi

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.