MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 16.04.2008, 11:57   #1
Kartanic
Neuer Benutzer
Neuer Benutzer
Standard T-SQL : MSSQL 2005 - SQL-Abfrage Datensätze(Strings) verketten

Hallo,

ich habe ein kleines Sql-Problem:

Ursprungsdaten:

Tag | Uhrzeit
01.01.08 | 15:00-16:00
01.01.08 | 16:00-17:00


Aus den beiden Datensätzen soll ein Datensatz entstehen, der die Werte aus dem Feld Uhrzeit verkettet:

Tag | Uhrzeit
01.01.08 | 15:00-16:00 16:00-17:00


Gibt es dafür via Sql eine Möglichkeit?

Vielen Dank für Eure Hilfe
Kartanic ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2008, 09:03   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Moin,
selbstverständlich gibt es eine Lösung für so etwas, ich würde das so angehen:
- eine Funktion schreiben, die den Tag als Parameter übergeben bekommt
- in der Funktion wird ein Cursor definiert auf einem View, der alle Datensätze mit dem fraglichen Datum durchläuft
- die Inhalte der Uhrzeit-Felder werden dabei hintereinander in den Return-Wert geschrieben
Könnte so aussehen:
Code:

create function dbo.uhrkette(@d datetime) returns varchar(200)
begin
declare @r varchar(200)
declare @z varchar(12)
declare cc cursor for
 select uhrzeit from tabelle where tag = @d order by uhrzeit for read only
set @r = ''
open cc
while ( 0 = 0 ) begin
 fetch next from cc into @z
 if ( @@fetch_status <> 0 ) break
 set @r = @r + ' ' + @z 
end
close cc
deallocate cc
return @r
end
Diese Funktion rufst Du dann in einem View auf:
Code:

select distinct tag, dbo.uhrkette(tag) as uhrzeiten
 from tabelle order by tag

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2008, 09:23   #3
Josef P.
MOF Guru
MOF Guru
Standard

kurze Zusatzinfo:
Verketten funktioniert auch ohne Cursor-Deklaration.

Prinzip:
Code:

declare @r varchar(200)
SELECT
     @r = isnull(@r + ' ') + uhrzeit
FROM
     tabelle 
WHERE
     tag = @d 
     AND
     uhrzeit > ''
ORDER BY
     uhrzeit
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2008, 10:32   #4
hcscherzer
MOF Guru
MOF Guru
Standard

@Josef: danke für den Tipp.
Ich staune ja immer wieder, wie mächtig dieses Werzeug TSQL doch ist.
Und in 2008 gibt's dann (endlich) den += Operator

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2008, 19:02   #5
strausto
MOF Guru
MOF Guru
Standard

ergänzend
http://www.ms-office-forum.net/forum...d.php?t=221957

__________________

Best regards

Torsten

Microsoft Certified Technology Specialist Microsoft® SQL Server® 2008 Business Intelligence Development and Maintenance
Microsoft Certified Technology Specialist Microsoft® SQL Server® 2008 Database Development
Member of PASS Professional Association for SQL Server http://www.sqlpass.de/
strausto ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 21.04.2008, 05:50   #6
Kartanic
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Danke,super!!!
Kartanic ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.