Ich habe es über UNIONS gelöst - Relationenalgebra halt.
In der Form:
r È s := {t Î Tup (X) | t Î r Ú t Î s }
Die Eindeutigkeit ist immer gegeben und falls die Performance Probleme bereiten wird, kann ich die View immer noch optimieren. Das Problem sehe ich als gelöst an und jetzt kann ich mich den nächsten Problemen widmen ;-)
Hier ein Teil der View:
CREATE View v_Artikelverkaufspreise as
Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk1 as Preis,'Bezeichnung'='1' FROM
dbo.Artikel where Artikel.Preis_Vk1 >0
union
Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk2,'Bezeichnung'='2' FROM
dbo.Artikel where Artikel.Preis_Vk2 >0
union
Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk3,'Bezeichnung'='3' FROM
dbo.Artikel where Artikel.Preis_Vk3 >0
union
Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk4,'Bezeichnung'='4' FROM
dbo.Artikel where Artikel.Preis_Vk4 >0
union
Select Artikel.Artikelnr as Artikelnr ,Artikel.Preis_Vk5,'Bezeichnung'='5' FROM
dbo.Artikel where Artikel.Preis_Vk5 >0