tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Thomas Darimont
  • 1 Beitrag von Thomas Darimont
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1890
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Bänch Bänch ist offline Mitglied
    Registriert seit
    Jun 2010
    Ort
    Sachsen
    Beiträge
    20
    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 :
    1
    2
    3
    4
    5
    
    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 :
    1
    2
    3
    4
    5
    
    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" ?
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    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
    Bänch bedankt sich. 
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    Bänch Bänch ist offline Mitglied
    Registriert seit
    Jun 2010
    Ort
    Sachsen
    Beiträge
    20
    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)
    Geändert von Bänch (15.06.10 um 13:37 Uhr)
     
    Bänch...
    -----------------------------------------------
    I wanna freak you...

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    was kommt den raus wenn du auf beiden Instanzen dieses Statement (reduziert auf den kritischen Ausdruck) ausführst?
    Code sql:
    1
    
    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
    Bänch bedankt sich. 
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    Bänch Bänch ist offline Mitglied
    Registriert seit
    Jun 2010
    Ort
    Sachsen
    Beiträge
    20
    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 =)
     
    Bänch...
    -----------------------------------------------
    I wanna freak you...

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 14.10.10, 16:45
  2. Visual Basic 2008 Express Button zur einer Website Linken!?
    Von wejherowo112 im Forum .NET Web und Kommunikation
    Antworten: 4
    Letzter Beitrag: 13.08.09, 20:30
  3. VB Express 2008 - ODBC
    Von sumwear im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 13.08.08, 17:31
  4. MS WinSrv 2008 + SQL Srv 2005 (SP2) - Problem SQL Srv Instanz zu connecten
    Von SixDark im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 11.08.08, 12:27
  5. Zugriff auf SQL Server 2005 von VB.2008 Express
    Von dikiyzver im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 07.05.08, 10:54

Stichworte