Jump to content

Problem bei SQL-Kreuzabfrage (div. Spaltenwerte in ein Zeile zusammenführen)


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,
ich habe 2 SQL Tabellen, aus denen ich Daten zu einer Tabelle vereinen muss
 

Tabelle 1

==============================
FileID      | ModId

--------------------------------------

123456   | 201700033 

234567   | 201700121

345678   | 201700092

 

 

Tabelle 2

==============================
ModId           | Name     | Value

--------------------------------------

201700033   | Nr           | 123

201700033   | Name     | Test1 GmbH

201700033   | eMail      | info@test1.de

201700033   | PLZ        | 44444

201700121   | Nr           | 234

201700121   | Name     | Test2 AG

201700121   | eMail      | info@test2.de

201700092   | Nr           | 345

201700092   | Name     | Schröder UG

201700092   | eMail      | info@test3.de

201700092   | Ort          | Testhausen

201700092   | Telefon   | 0815 4711

 

In Tabelle1 wird eine eineindeutige FileId mit einer internen ID Verknüpft.

In Tabelle 2 gibt es zu jeder ModId diverse Indexwerte. Die Beschreibung/Überschrift des Indexwertes steht und Spalte "Name" und der zugehörige Wert in Value.

 

Ich muss nun versuchen eine View zu erzeugen, die mir gewünschte Feldwerte mit der FileId verknüpft und einen Datensatz zurück bringt.

Ich möchte z.B. nur Nr, Name und eMail aus allen möglichen Feldern zurück erhalten.

 

FileId      | Nr   | Name               |eMail

-----------------------------------------------------------------------

123456   | 123 | Test1 GmbH    | info@test1.de

234567   | 234 | Test2 AG         | info@test2.de

345678   | 345 | Test3 UG         | info@test3.de

 

 

Ich habe es wie folgt versucht, aber versage bei jeglichem Ansatz einen Wert aus dem System zu bekommen.

 

with FieldNames as (
    select 'Nr' union all
    select 'Name' union all
    select 'eMail' union all
)
select
    File.id AS 'FileId',
    Field.Name,
        (case when exists (select Field.Value
            from FieldNames FN
            where Field.Name like '%'+FN.Field+'%')
        end) 
FROM
    file AS File,
    field AS Field
WHERE
    AND field.modid = file.modid
GROUP BY 
    File.id

Gruß

hupe

 

 

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...