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