Zapytanie SQL z odwołaniem do kolumn o tej samej nazwie

0

Witajcie,

Pisze proszte zapytanie łączące nie dane z kilku tabelek. Pojawił się problme z wyświetlniem danych z kolum o identycznej nazwie. Jak to obejśc:
Oto kod:

select [Entry No.], 
	   [Description],**foo** 
	   [Start Time],
	   [End Time], 
	   [Name],
	   [Machine No. Code],
	   [Machine Cost Center Code],
	   [Machine Functional Part Code],
	   [Total Downtime],
	   [Stop Reason Description],
	   
	   [Description]**foo**
from [Stops Register]
join dbo.[Stop Reasons]
on [Stop Reasons].Code=[Stops Register].[Stop Reason Code]
join dbo.Employee
on [Employee].Code=[Stops Register].[Employee No. Code]
join dbo.Shifts
on [Stops Register].[Shift Code]=[Shifts].Code

Jak widać Kolumna Discription pojawia się dwa razy, jednak są to dane z równych tabel jak widać w join. Jendka wywala mi błąd tej kolumny :

Msg 209, Level 16, State 1, Line 2
Ambiguous column name 'Description'.
Msg 209, Level 16, State 1, Line 12
Ambiguous column name 'Description'.

Jak zapisać to poprawnie?

dodanie znacznika <code> - furious programming

0

Musisz stosować aliasy. Np

SELECT P.* FROM Pracownicy AS P

dodanie znacznika <code class="sql"> - furious programming

0

Z tym już sobie poradziłem przez stosowanie schematu tabeli. Mma za to inny problem, jak pobrać dane 2 razy z tablei która została już wcześniej użyta:

select dbo.[Stops Register].[Entry No.], 
	   dbo.[Stop Reasons].[Description], 
	   dbo.[Stops Register].[Start Time],
	   dbo.[Stops Register].[End Time], 
	   dbo.[Employee].[Name],
	   dbo.[Stops Register].[Machine No. Code],
	   dbo.[Stops Register].[Machine Cost Center Code],
	   dbo.[Machine Functional Part].[Description],
	   dbo.[Stops Register].[Total Downtime],
	   dbo.[Stop Reasons].[Description],
	   dbo.[Stops Register].[Downtime Status],
	   dbo.[Shifts].[Description],
	   dbo.[Employee].[Name]
	   
from [Stops Register]
join dbo.[Stop Reasons]
on [Stop Reasons].[Code]=[Stops Register].[Stop Reason Code]
join dbo.[Employee]
on [Employee].[Code]=[Stops Register].[Employee No. Code]
join dbo.[Machine Functional Part]
on [Machine Functional Part].[Code]=[Stops Register].[Machine Functional Part Code]
join dbo.[Shifts]
on dbo.[Shifts].[Code]=[Stops Register].[Shift Code]

join dbo.[Employee]
on [Employee].[Code]=[Stops Register].[Finished by Employee Code]

Chodzi tutaj o ostatni wiersz, tabela Emploee została już wcześniej użyta, teraz chce pobrać dane z tejsamej tabeli ale innej kolumy. Krzyczy mi coś takiego:
The objects "dbo.Employee" and "dbo.Employee" in the FROM clause have the same exposed names. Use correlation names to distinguish them.

No i ma race ;/

1

Ehhh mówiłem że aliasy

SELECT SR.[Entry No.], 
       SRS.[Description], 
       SR.[START TIME],
       SR.[END TIME], 
       E.[Name],
       SR.[Machine No. Code],
       SR.[Machine Cost Center Code],
       MFP.[Description],
       SR.[Total Downtime],
       SRS.[Description],
       SR.[Downtime STATUS],
       S.[Description],
       E1.[Name]
 
FROM [Stops Register] AS SR
JOIN [Stop Reasons] AS SRS ON SRS.[Code] = SR.[Stop Reason Code]
JOIN [Employee] AS E ON E.[Code] = SR.[Employee No. Code]
JOIN [Machine Functional Part] AS MFP ON MFP.[Code] = SR.[Machine Functional Part Code]
JOIN [Shifts] S ON S.[Code]=SR.[Shift Code]
JOIN [Employee] E1 ON E1.[Code]=SR.[Finished BY Employee Code]
0
select a.*, b.* from nazwa_tabeli a, nazwa_tabeli b

masz dwa razy z tej samej tabeli

BTW za nawy kolumn ktoś powinien Ci zabrać komputer i zabronić dostępu do niego przez najbliższe 10 lat

0

Też jestem tego zdania, na szczęście to nie ja nazywałem te kolumny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1