Jump to content

SQL2012 Probleme mit Sichttabellen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,
wir nutzen eine SQL 2012 er Datenbank sowie eine erstellte Sicht. Auf diese Sichtungstabellen werden von anderen Rechnern mit einer Software (DPD DelisPrint Versandsoftware) zugegriffen.
Diese Sichtungstabellen lassen sich sowohl auf dem SQL Manager als auch von der Versandsoftware (DPD) aufrufen. Von der Versandsoftware allerdings nur die Überschriften der Spalten der Sichtabelle.
Einige Spalten bzw deren Inhalte der Sichtungstabellen besitzen allerdings eine Abfrage, z.b. mit Case oder IIF und diese Spalten mit der Abfrage sind beim Aufruf mit unserer Versandsoftware (DPD) dann leider leer, also nicht gefüllt.
Ruft man die Tabelle am Client mit Excel auf, sind die Spalten jedoch vorhanden und gefüllt. Die Tabelle ansicht scheint somit O.K. zu sein. Nur die Versandsoftware hat anscheinend Probleme auf Sichtungstabellen zuzugreifen die eine Abfrage besitzen. Füllt man die Sicht mit einem einfachen Befehl z.B. b.A0Name1 AS Name1, funktioniert es.
Bei einer älteren SQL Server Version hat es einwandfrei funktioniert. Irgendetwas muss bei SQL 2012 nun anders sein.
Hat jemand Lösungsvorschläge. ???
Hier einmal unsere komplette Sicht:
 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP VIEW [dbo].[vwicVersandadressen]
GO
CREATE VIEW [dbo].[vwicVersandadressen]
AS
SELECT     TOP (100) PERCENT CAST(b.Belegjahr AS VARchar) + '-' + CAST(b.Belegnummer AS varchar) AS Belegnummer, b.A0Empfaenger AS Kundennummer,
                      CASE WHEN (b.A1Name1 IS NULL) THEN b.A0Name1 ELSE b.A1Name1 END AS Name1, CASE WHEN (b.A1Name1 IS NULL)
                      THEN b.A0Name2 ELSE b.A1Name2 END AS Name2, CASE WHEN (b.A1Name1 IS NULL) THEN b.A0Zusatz ELSE b.A1Zusatz END AS Name3,
                      CASE WHEN (b.A1Name1 IS NULL) THEN b.A0Zusatz ELSE b.A1Zusatz END AS Expr1, CASE WHEN (b.A1Name1 IS NULL)
                      THEN b.A0Strasse ELSE b.A1Strasse END AS Strasse, CASE WHEN (b.A1Name1 IS NULL) THEN b.A0PLZ ELSE b.A1PLZ END AS PLZ,
                      CASE WHEN (b.A1Name1 IS NULL) THEN b.A0Ort ELSE b.A1Ort END AS Ort, CASE WHEN (b.A1Name1 IS NULL) THEN b.A0Land ELSE b.A1Land END AS Land,
                      ISNULL(b.WebEMail, a.EMail) AS EMail
FROM         dbo.KHKVKBelege AS b INNER JOIN
                      dbo.KHKAdressen AS a ON b.A0AdressNr = a.Adresse AND a.Mandant = b.Mandant
WHERE     (b.Mandant = 1)
ORDER BY b.Belegjahr DESC, Belegnummer DESC
GO
Link zu diesem Kommentar

Hallo Expert Member,

 

ich bin leider nicht so der Sql-Profi. Aber ich gehe davon aus das es eine View ist. Auf das Order bzw. die Sortierung könnte ich verzichten. Das Hauptproblem sind aber die Abfragen und die zusammengesetzten Inhalte der Spalten wie hier: CAST(b.Belegjahr AS VARchar) + '-' + CAST(b.Belegnummer AS varchar) AS Belegnummer,

Greife ich von dem Client über Excel auf die Sicht/View zu werden die Spalteninhalte angezeigt, also scheinen die Rechte O.K. zu sein.

Kurz:

funktioniert: b.A0Name1 AS Name1,

funktioniert NICHT: CASE WHEN (b.A1Name1 IS NULL) THEN b.A0Name1 ELSE b.A1Name1 END AS Name1

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...