mssql abfrage wie soll ichs machen

V

victorvox

hallo, ich habe da ein kleines problem.
ich habe eine mssql abfrage(view) welche mir unterschiedliche wartungsvorgänge pro gerät gibt. es kann nun ab und an vorkommen, das zu dem gleichen gerät vier bis 5 vorgänge existieren. aktuell ist es gelößt das pro wartungsvorgang ein datensatz angezeigt wird. bedeutet, das dann in meinem datagridview das gleiche gerät 5 mal angezeigt wird jedoch mit dem jeweiligen wartungsvorgang.

schön wäre es, den datensatz einmal und die entsprechenden wartungsvorgänge automtatisch hintereinander?! ich hoffe ich versteht mich.

das ist meine aktuelle abfrage:
SQL:
SELECT     TOP (100) PERCENT dbo.ter_wartung_new.id_geraet AS IntNr, dbo.ter_device.IntNr AS IntNr_Alt, dbo.ter_orte.ort AS Station, dbo.ter_device.serien AS SN, 
                      dbo.ter_device.typ AS Gerätetyp, dbo.ter_device.geraet AS Gerätebezeichnung, dbo.ter_device.baujahr AS Bj, dbo.ter_device.inbetrieb AS Inb, dbo.ter_device.garantie, 
                      DATEADD(m, dbo.ter_art_geraet.wfrist, MAX(dbo.ter_wartung_new.datum)) AS [Nächste Wartung], dbo.ter_kuerzel.bezeichnung AS Wartungsvorgang, 
                      dbo.ter_device.id, dbo.ter_art_geraet.id_geraet, dbo.ter_kuerzel.id AS id_art
FROM         dbo.ter_wartung_new INNER JOIN
                      dbo.ter_art_geraet ON dbo.ter_wartung_new.id_geraet = dbo.ter_art_geraet.id_geraet INNER JOIN
                      dbo.ter_kuerzel ON dbo.ter_art_geraet.art = dbo.ter_kuerzel.id INNER JOIN
                      dbo.ter_device ON dbo.ter_art_geraet.id_geraet = dbo.ter_device.id INNER JOIN
                      dbo.ter_orte ON dbo.ter_device.ort = dbo.ter_orte.id
GROUP BY dbo.ter_wartung_new.id_geraet, dbo.ter_art_geraet.wfrist, dbo.ter_wartung_new.art, dbo.ter_kuerzel.bezeichnung, dbo.ter_device.geraet, dbo.ter_device.typ, 
                      dbo.ter_device.IntNr, dbo.ter_orte.ort, dbo.ter_device.serien, dbo.ter_device.baujahr, dbo.ter_device.inbetrieb, dbo.ter_device.garantie, dbo.ter_device.id, 
                      dbo.ter_kuerzel.interval, dbo.ter_art_geraet.id_geraet, dbo.ter_kuerzel.id
ORDER BY [Nächste Wartung] DESC


wie könnte ich das lösen?

aktuell:

gerät 1 w 1 w 2
gerät 1 w 1 w 3
gerät 1 w 1 w 4

gewünscht:

gerät 1 w 1w 2w 3w 4w

;-)
 
binde doch einfach mit nem outer join an den datensatz z.B.:

Code:
select * from a 
left outer join w on a.id = w.wartung1_bed  
left outer join w on a.id = w.wartung2_bed

usw. es gibt dan zwar NULL Felder aber die könnte man ja filtern

gruß

katosan
 
Zurück