Benutzer mit den meisten Antworten
Operandentypkollison Excel und SQL Server

Frage
-
Hallo an Alle,
ich habe folgendes Problem:
Ich habe eine SQL-Anweisung geschrieben, die im SSMS einwandfrei funktioniert. Nun möchte ich mir das Ergebnis in Excel ausgeben lassen und mit "festen" Parametern funktioniert die Ausgabe auch einwandfrei.
Wenn ich aber jetzt, Parameter aus der Excel-Tabelle benutzen möchte kommt folgende Fehlermeldung: Operandentypkollision: date ist inkompatibel mit int.
So sieht der Code aus:
(select b.column1 From example b where convert(date,b.datum) between ? and ? group by b.column1 having ROUND(SUM(column3*column4),2)>0) EXCEPT (select b.column2 From example b where convert(date,b.datum) between ? and ? group by b.column1 having ROUND(SUM(column3*column4),2)>0)
Wie gesagt, wenn ich bei den Verbindungeigenschaften die ? mit '01.01.2015' und '01.01.2016' ersetze, dann funktioniert es einwandfrei.
Folgendes habe ich gemacht:
Ich habe das Zellenformat, der Zellen in denen die Eingabeparameter stehen, auf Text geändert. Ich habe es mit Standard probiert und mit Datum.
Habt ihr eine Idee wo mein Denkfehler ist?
Vielen Dank für Eure Mühe und Antworten!
Antworten
-
Ich habe den Fehler gefunden es lag an dem
where convert(date, b.datum) between ? and ?
Ich habe es angepasst zu:
where convert(date, b.datum) >= ? and convert(date, b.datum)< ?
Vielen dank für Eure Hilfe!
- Als Antwort markiert Hase90 Dienstag, 25. August 2015 06:21
Alle Antworten
-
-
Hi,
wahrscheinlich am falschen Datumsformat. Probier mal 'yyyyMMdd'.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Vielen Dank für den Tipp!
Leider hat es mit folgenden Werten nicht funktioniert:
20140101 20150101 20150101 20160101 Wenn ich die Einträge in ' ' setze, kommt die (neue) Fehlermeldung:
"Ungültiger Parametertyp. Microsoft Office Excel erwartet eine andere Art von Wert."
- Bearbeitet Hase90 Freitag, 21. August 2015 08:36
-
Hab mich geirrt, ist doch eine SQL Server Meldung
select * from sys.messages where message_id = 206
Operandentypkollision: %1! ist inkompatibel mit %2´!
Also stimmt da was mit den Datentypen, sieht so aus als würde hier von Excel ein Integer Wert als Parameter übergeben.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Ich habe den Fehler gefunden es lag an dem
where convert(date, b.datum) between ? and ?
Ich habe es angepasst zu:
where convert(date, b.datum) >= ? and convert(date, b.datum)< ?
Vielen dank für Eure Hilfe!
- Als Antwort markiert Hase90 Dienstag, 25. August 2015 06:21