2010-12-13 23 views
0

Je voudrais lancer une requête pour obtenir quelques statistiques simples sur notre base de données, mais il renvoie l'erreur suivante. quelqu'un peut-il me conseiller sur la façon de le réparer?Double Inner Join Query prenant pour toujours

requête =

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 

Erreur renvoyée =

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

Un grand merci à l'avance.

Adam

+0

Quel est le type de données de clientid & insscheme? – wizzardz

+0

nvarchar (50) pour les deux. –

+0

Quels types sont les 4 champs auxquels vous vous joignez? – kevpie

Répondre

2

Vous pouvez outrepasserait la limite COUNT, qui retourne un entier. Essayez d'utiliser COUNT_BIG à la place, car il retourne un bigint.

+0

merci, cela a fonctionné, mais j'ai évidemment quelque chose de mal .. il me dit que nous avons 10258155655 revendications quand je sais pour un fait, il n'y a qu'une fraction de ce nombre .. –

+0

aussi, son retour le même nombre pour les deux champs –

+0

@ adam-mcc, Vous ne pouvez pas joindre assez de champs qui aboutit à un produit cartésien quelque part – kevpie

1

Je suspecterais une incompatibilité de type de données entre certains des champs de jointure. Il essaie de convertir quelque chose et cela semble être l'endroit le plus logique.