ich drei Tabellen A, B und C in einem SQL-Server habe, B und C den gleichen Fremdschlüssel (AgencyID
) von A und sie einen gleichen Spaltennamen auch gemeinsam nutzen: AgencyName
Erstellen eine Spalte für eine Ansicht aus zwei verschiedenen Tabellen (SQL Server)
Tabelle A: AgencyID
, AgencyDate
,
Tabelle B: AgencyID
, 012., Agency
Tabelle C: AgencyID
, AgencyInvoiceNumber
, Agency
Sie die Beziehung verstehen zu helfen, im Grunde sind diese drei Tabellen mit generierten Entity Framework, wo B
und C
jeweils erweitert A
.
Jetzt versuche ich, einen Blick von diesen drei Tabellen in der folgenden Art und Weise zu erstellen:
CREATE VIEW [rdo].[Agencies] AS
SELECT
A_1.AgencyID, A_1.AgencyDate,
dbo.B.AgencyNumber, dbo.B.AgencyName,
dbo.C.AgencyInvoiceNumber, dbo.C.AgencyName
FROM dbo.A AS A_1 LEFT OUTER JOIN
dbo.B ON A_1.AgencyID = dbo.B.AgencyID LEFT OUTER JOIN
dbo.C ON A_1.AgencyID = dbo.C.AgencyID
nun anscheinend die Skriptfehler über AgencyName
dass Spaltennamen in einer Ansicht sollten eindeutig sein :(Wie würde ich Gehen Sie so vor, dass beide AgencyName
Werte von B und C in einer Ansicht zusammengeführt werden?
Hinweis: Ich weiß, das Beispiel ist nicht perfekt, wie man die Spalte nur in Tabelle A verschieben kann, aber es ist nur ein vereinfachtes Beispiel, in Wirklichkeit kann ich wirklich nicht einfach die Spalte verschieben :(
Grund für die mit Spalten haben in B und C dupliziert:
Hier ist die Beziehungen:
A
/\
A1 A2
/ \
B C
A1 und A2 erstreckt A, B und C A1 und A2 erstreckt sind. AgencyName
ist ein einzigartiges Attribut, das nur B und C hat. Ich weiß, dass hier ein Refactoring durchgeführt werden könnte, um diese seltsame Hierarchie loszuwerden, aber dieses Legacy-Projekt ist bereits zu groß geworden und ich kann mir die Kosten nicht leisten.
Ich verstehe Ihr Geschäft nicht, aber ich fand, dass [AgenturID] das gleiche ist. warum verwendest du nicht [INNER JOIN] – TinhNQ
wenn du entity framwork 6 verwendest, dann brauchst du nicht join bro .... du kannst direkt auf thoe 2 tables zugreifen –
Du solltest deinen Agency Namen besser nicht zweimal eingeben, da es gleich ist . – Lucky