Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL-Server abfrage mit 2 Tabellen mit gleichem Spaltennamen

Frage Entwicklung Datenbanken

Mitglied: DerLomi

DerLomi (Level 1) - Jetzt verbinden

03.09.2009, aktualisiert 08:52 Uhr, 4944 Aufrufe, 2 Kommentare

Moin Leute,

hab nen kleinen Problem. Habe hier eine Datenbank (SQL Server 2005) am laufen und soll jetzt eine Abfrage aus 2 Tabellen erstellen, die Daten aus beiden Tabellen enthält.

Die Tabellen haben den gleichen Aufbau und auf die selben Spaltennamen. Wenn ich jetzt mit einem Komma die 2 Tabelle in die "From" abfrage einbaue kriege ich aber den Fehler das die Spaltennamen doppelt vorhanden sind.

Dies ist die Ausgangsabfrage:

SELECT [tn_id]
,[tm_ktxt]
,[tp_name] + ' ' + [tp_vorname] Mitarbeiter
,[tn_von]
,[tn_bis]
,[tn_ag]
,[tn_artikel]
,[tn_kd]
,[tn_sd]
,[tn_anr]
,[tn_spanung]
,[tn_stksoll]
,[tn_stkist]
,[tn_laufzeit]
,[tn_bemerkung]
FROM [jasper].[dbo].[ttknachweis] join [jasper].[dbo].[ttkpersonal] on [tn_pnr] = [tp_pnr]
left outer join [jasper].[dbo].[ttkmaschinen] on [tn_mnr] = [tm_mnr]
WHERE
isnull([tn_artikel], '') LIKE $P{artikelNr}
AND $X{IN, ttknachweis.tn_pnr, personalNr_m}
AND isnull([tn_anr], '') LIKE $P{auftragsNr}
AND [tn_von] >= $P{datumVon}
AND [tn_bis] <= $P{datumBis}
AND $X{IN, ttknachweis.tn_mnr, inclMaschinen}
AND $X{NOTIN, ttknachweis.tn_mnr, exclMaschinen}
AND $X{IN, ttknachweis.tn_ag, inclAG}
ORDER BY
DATEPART ( yyyy , [tn_von] ) ASC, DATEPART ( mm , [tn_von] ) ASC, DATEPART ( dd , [tn_von] ) ASC,
Mitarbeiter ASC,
[tn_von] ASC

Und so würde ich es machen:

SELECT [tn_id]
,[tm_ktxt]
,[tp_name] + ' ' + [tp_vorname] Mitarbeiter
,[tn_von]
,[tn_bis]
,[tn_ag]
,[tn_artikel]
,[tn_kd]
,[tn_sd]
,[tn_anr]
,[tn_spanung]
,[tn_stksoll]
,[tn_stkist]
,[tn_laufzeit]
,[tn_bemerkung]
FROM [jasper].[dbo].[ttknachweis], [jasper].[dbo].[ttknachweis_z] join [jasper].[dbo].[ttkpersonal] on [tn_pnr] = [tp_pnr]
left outer join [jasper].[dbo].[ttkmaschinen] on [tn_mnr] = [tm_mnr]
WHERE
isnull([tn_artikel], '') LIKE $P{artikelNr}
AND $X{IN, ttknachweis.tn_pnr, personalNr_m}
AND isnull([tn_anr], '') LIKE $P{auftragsNr}
AND [tn_von] >= $P{datumVon}
AND [tn_bis] <= $P{datumBis}
AND $X{IN, ttknachweis.tn_mnr, inclMaschinen}
AND $X{NOTIN, ttknachweis.tn_mnr, exclMaschinen}
AND $X{IN, ttknachweis.tn_ag, inclAG}
ORDER BY
DATEPART ( yyyy , [tn_von] ) ASC, DATEPART ( mm , [tn_von] ) ASC, DATEPART ( dd , [tn_von] ) ASC,
Mitarbeiter ASC,
[tn_von] ASC

Aber irgendwie klappt das nicht.

Könnt ihr mir helfen?

Danke und MFG Tobi
Mitglied: it-frosch
03.09.2009 um 09:39 Uhr
Hallo Tobi,

du solltest mit Aliasen bei den Tabellen arbeiten. Woher soll das Datenbanksystem denn sonst wissen aus welcher Tabelle du das Feld haben willst?

Beispiel:
Tab Personal mit feldern name,vorname,personalnr
Tab Urlaub mit feldern utage,personalnr (enthält die einzelnen genommenen Urlaubstage)

--- > ist nur ein dummes Beispiel

Jetzt willst du dir alle Mitarbeiter mit der Summe der genommen Urlaubtage ausgeben lassen.

select p.vorname,p.name,sum(u.utage) from personal p
left outer join urlaub u
on p.personalnr=u.personalnr
group by p.vorname,p.name


z.B. statt:
FROM [jasper].[dbo].[ttknachweis], [jasper].[dbo].[ttknachweis_z] join [jasper].[dbo].[ttkpersonal] on [tn_pnr] = [tp_pnr]
left outer join [jasper].[dbo].[ttkmaschinen] on [tn_mnr] = [tm_mnr]

so

FROM [jasper].[dbo].[ttknachweis] alias1, [jasper].[dbo].[ttknachweis_z] alias2 join [jasper].[dbo].[ttkpersonal] alias3 on alias2.[tn_pnr] = alias3.[tp_pnr]
left outer join [jasper].[dbo].[ttkmaschinen] alias4 on alias2.[tn_mnr] = alias4.[tm_mnr]
Bitte warten ..
Mitglied: DerLomi
04.09.2009 um 07:50 Uhr
Wunderbar =)
Vielen Dank.
An Aliases hab ich noch garnich dran gedacht xD
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Excel Recordset - Abfrage auf SQL-Server (4)

Frage von Aximand zum Thema VB for Applications ...

Windows Server
Sql server 2014 installation auf einer windows server 2012r2 vm (5)

Frage von meister00 zum Thema Windows Server ...

Windows Server
Sql server 2014 failover (8)

Frage von meister00 zum Thema Windows Server ...

Windows Server
gelöst Performanceprobleme mit SQL Server (7)

Frage von lazkopat85 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...