MS SQL Server 2008 Express - Datenbankabfrage funktioniert nur an einer Instanz

Bänch

Mitglied
Hallo,

ich habe folgendes Problem.
Auf meinem Computer befinden sich 2 SQL Server Instanzen. Einmal die Instanz "SQL" und einmal die Instanz "KUNDEN".
Die beiden Instanzen sind mit der gleichen Installationsdatei installiert wurden.

An beiden Instanzen hängt die gleiche Datenbank "XYZ".

Folgende Abfrage soll aufgeführt werden:

Code:
SELECT [KalkulationAufträge].[ID], Satz, Art, ArtNr,  Bezeichnung, Menge, a , b, c, f, MEinheit, Barcode,
		 IsNull([a]*[f], 1) * IsNull([a]*[f], 1 ) as GesPos
		--*IsNull([b],1)*[f]*isNull([ c],1)*[f]
	FROM KalkulationAufträge LEFT JOIN Wertetabelle ON [KalkulationAufträge].[Art] = [Wertetabelle].[ID]
	WHERE [KalkulationAufträge].[Art] > 150 And Satz = 2144

Auf der ersten Instanz "SQL" funktioniert die Abfrage nicht aber auf der Instanz "KUNDEN".

An der Instanz "SQL" erscheint folgende Meldung: Arithmetischer Überlauffehler beim Konvertieren von numeric in den numeric-Datentyp.

Woran kann es liegen ?

Habe schon Versionsnummern und andere Einstellungen im SQL Server Studio verglichen und keine Unterschiede gefunden.

Wenn ich aber die Abfrage verändere und ein "convert" einbaue funktioniert es. (folgend)
Code:
SELECT [KalkulationAufträge].[ID], Satz, Art, ArtNr,  Bezeichnung, Menge, a , b, c, f, MEinheit, Barcode,
		 convert(float,IsNull([a]*[f], 1)) * IsNull([a]*[f], 1 ) as GesPos
		--*IsNull([b],1)*[f]*isNull([ c],1)*[f]
	FROM KalkulationAufträge LEFT JOIN Wertetabelle ON [KalkulationAufträge].[Art] = [Wertetabelle].[ID]
	WHERE [KalkulationAufträge].[Art] > 150 And Satz = 2144

Ich suche nach einer anderen Lösung, da ich nicht bei 120 Abfragen jedes mal das "convert" einfügen will.

Danke schon mal im voraus.

Bänch...


##EDIT##

Ich habe aus Neugier einfach noch eine Instanz "VERSION" Installiert und die Datenbank angehangen.

Die Abfrage funktioniert auch bei der neuen Instanz aber warum nicht bei der Instanz"SQL" ?
 
Hallo,

enthalten die Instanzen wirklich die gleichen Daten? Wurden die Daten auf die gleiche Weise aus der gleichen Quelle eingespielt?
Sieht so aus, als gäbe es in der "SQL" Instanz andere Daten als in den anderen Instanzen oder die Typen der Spalten sind anders.

Gruß Tom
 
Hey,

ja sind die gleichen Daten, habe jeweils an den Instanzen eine Sicherung der Orginaldatenbank wiederhergestellt.

Habe die Felder auch schon verglichen. Sind beides Numeric Felder. Das erste Feld [ a ] ist numeric(18,6) und das zweite Feld [ f ] ist numeric(18,6).

Grüße

PS: Erstaunlicher Weise lief die Datenbank schon 2 Jahre auf einem SQL Server 97 (glaube) und und jetzt kommt der Fehler bei der Instanz "SQL" (SQL Server 2008)
 
Zuletzt bearbeitet:
Hallo,

was kommt den raus wenn du auf beiden Instanzen dieses Statement (reduziert auf den kritischen Ausdruck) ausführst?
SQL:
select [a]*[f] as test, IsNull([a]*[f], 1) as test2 from xxxx

Unterscheiden sich die beiden Instanzen in Irgendeiner Form? Unterschiedliche Versionen? 32-Bit, 64-Bit Variante?

Gruß Tom
 
Hey,

also er gibt mir bei allen 3 Instanzen eine Tabelle aus mit 2 Spalten ( test1 , test2 ), wobei in der ersten Spalte alles "NULL" ist und in der anderen Spalte alles "1.0000000".

Zu deiner Frage, die Instanzen unterscheiden sich nicht. ( Aber irgendwie muss es ja einen Unterschied geben.) Ich habe alle Instanzen mit der gleichen Installationsdatei auf dem gleichen System Installiert.

Der einzige Unterschied dabei ist, das sich das MSSQL10- Verzeichnis bei der Instanz "VERSION" und "KUNDEN" auf einer anderen Festplatte befindet. ( Platzproblem ;) )

Grüße =)
 
Zurück