2010-12-13 9 views
0

Ich möchte eine Abfrage ausführen, um einige einfache Statistiken in unserer Datenbank zu erhalten, aber es gibt den folgenden Fehler zurück. kann mir jemand raten, wie ich es beheben kann?Dual Inner Join Abfrage, die für immer dauert

query =

SELECT  tblSchemes.Clientid, count(clientid), count(insscheme) 
FROM  tblSchemes 
INNER JOIN tblclaims_liberty ON tblClaims_liberty.AgentCode = tblSchemes.ClientID 
INNER JOIN tblPolicys_liberty ON tblSchemes.Scheme = tblPolicys_liberty.InsScheme 
GROUP BY tblSchemes.Clientid 

Fehler zurückgegeben =

Msg 8115, Level 16, State 2, Line 1 
Arithmetic overflow error converting expression to data type int. 

Vielen Dank im Voraus.

Adam

+0

Was ist der Datentyp von clientid & inssscheme? – wizzardz

+0

nvarchar (50) für beide. –

+0

Welche Arten sind die 4 Felder, denen Sie beitreten? – kevpie

Antwort

2

Sie können den Grenzwert auf COUNT werden überschreiten, die eine ganze Zahl zurückgibt. Verwenden Sie stattdessen COUNT_BIG, da es eine Bigint zurückgibt.

+0

danke, das hat funktioniert, aber ich habe offensichtlich etwas falsch .. es sagt mir, wir haben 10258155655 Ansprüche, wenn ich weiß, dass es nur einen Bruchteil dieser Zahl gibt .. –

+0

auch, es gibt die gleiche Zahl für beide Felder .. –

+0

@ adam-mcc, Sie können nicht genug Felder beitreten, was zu einem kartesischen Produkt irgendwo – kevpie

1

Ich würde einen Datentyp nicht übereinstimmen zwischen einigen der Join-Felder vermuten. Es versucht etwas zu konvertieren und das scheint der logischste Ort zu sein.