Hallo,
hier mal die Abfrage! Ich weiß, es sind viele unterabfragen, was natürlich nicht sehr vorteilhaft für die performance ist, allerdings muss ich das alles in SQL machen, da die Abfrage so an eine dll übergeben wird!
SELECT FA.BelID, FA.Belegnummer, FA.Projekt, FA.Artikelnummer, _
FA.Bezeichnung1, FA.Bezeichnung2, FA.Matchcode, FA.Zeichnungsnummer, _
FA.Sollmenge,
FA.Istmenge, FA.Sollstarttermin, FA.Sollendtermin, _
FA.VerursacherTyp, FA.Fertigungmenge, VKBEL.Belegnummer _
AS VkBelnummer,
VKBEL.A0Matchcode, VKBEL.Bearbeiter, FA.Mandant, _
FA.IstEingelastet, FA.IstBegonnen, FA.IstBeendet, _
FA.VerursacherID, FA.IstGedruckt,
VKBELPOS.Menge, VKBELPOS.Mengeneinheit, _
VKBELPOS.Liefertermin, ART.Lagerbestand, CASE
(SELECT TOP 1 isnull(BCSRueckmeldungen.IstEnde, 0)
FROM BCSRueckmeldungen RIGHT OUTER JOIN
dbo.BCSFaBelegePositionen ON _
dbo.BCSRueckmeldungen.BelP_
osID = _
dbo.BCSFaBelegePositionen._
BelPosID AND
dbo.BCSRueckmeldungen.BelID _
= dbo.BCSFaBelegePositionen._
BelID AND
dbo.BCSRueckmeldungen.Mandan_
t = _
dbo.BCSFaBelegePositionen.Ma_
ndant
WHERE (dbo.BCSFaBelegePositionen.BelID = _
FA.BelId) AND ( _
dbo.BCSFaBelegePositionen.RessourceNummer = '1020')
ORDER BY dbo.BCSRueckmeldungen.RueckmeldungID DESC) _
WHEN - 1 THEN '-1' WHEN 0 THEN '0' ELSE 'x' END AS _
Gezeichnet, CASE
(SELECT TOP 1 isnull(BCSRueckmeldungen.IstEnde, 0)
FROM BCSRueckmeldungen RIGHT OUTER JOIN
dbo.BCSFaBelegePositionen ON _
dbo.BCSRueckmeldungen.BelP_
osID = _
dbo.BCSFaBelegePositionen._
BelPosID AND
dbo.BCSRueckmeldungen.BelID _
= dbo.BCSFaBelegePositionen._
BelID AND
dbo.BCSRueckmeldungen.Mandan_
t = _
dbo.BCSFaBelegePositionen.Ma_
ndant
WHERE (dbo.BCSFaBelegePositionen.BelID = _
FA.BelId) AND ( _
dbo.BCSFaBelegePositionen.RessourceNummer = '1010')
ORDER BY dbo.BCSRueckmeldungen.RueckmeldungID DESC) _
WHEN - 1 THEN '-1' WHEN 0 THEN '0' ELSE 'x' END AS _
Geschachtelt,
ISNULL
((SELECT TOP 1 'Menge' = CASE WHEN _
BCSRueckmeldungen.Menge > 0 THEN CONVERT( _
nvarchar(20), CONVERT(INTEGER,
BCSRueckmeldungen.Menge)) _
WHEN CONVERT(nvarchar(20), _
BCSRueckmeldungen.Menge) IS _
NULL THEN '' ELSE NULL END
FROM BCSRueckmeldungen RIGHT OUTER JOIN
dbo.BCSFaBelegePositionen _
ON _
dbo.BCSRueckmeldungen.Bel_
PosID = _
dbo.BCSFaBelegePositionen_
.BelPosID AND
dbo.BCSRueckmeldungen.BelID _
= dbo.BCSFaBelegePositionen_
.BelID AND
dbo.BCSRueckmeldungen.Manda_
nt = _
dbo.BCSFaBelegePositionen.M_
andant
WHERE (dbo.BCSFaBelegePositionen.BelID = _
FA.belid) AND ( _
dbo.BCSFaBelegePositionen.RessourceNummer = _
'2001')
ORDER BY dbo.BCSRueckmeldungen.RueckmeldungID _
DESC), 'x') AS Gelasert, ISNULL
((SELECT TOP 1 'Menge' = CASE WHEN _
BCSRueckmeldungen.Menge > 0 THEN CONVERT(nvarchar( _
20), CONVERT(INTEGER,
BCSRueckmeldungen.Menge)) _
WHEN CONVERT(nvarchar(20), _
BCSRueckmeldungen.Menge) IS _
NULL THEN '' ELSE NULL END
FROM BCSRueckmeldungen RIGHT OUTER JOIN
dbo.BCSFaBelegePositionen _
ON _
dbo.BCSRueckmeldungen.Bel_
PosID = _
dbo.BCSFaBelegePositionen_
.BelPosID AND
dbo.BCSRueckmeldungen.BelID _
= dbo.BCSFaBelegePositionen_
.BelID AND
dbo.BCSRueckmeldungen.Manda_
nt = _
dbo.BCSFaBelegePositionen.M_
andant
WHERE (dbo.BCSFaBelegePositionen.BelID = _
FA.belid) AND ( _
dbo.BCSFaBelegePositionen.RessourceNummer = _
'2002')
ORDER BY dbo.BCSRueckmeldungen.RueckmeldungID _
DESC), 'x') AS Gekantet, |