Question : Problème DISTINCT de COMPTE de SQL

J'emploie le COMPTE DISTINCT dans un SQL « table de pivot » mais les nombres ne sortent pas bien.  Je n'obtiens aucune erreur, mais elle semble ajouter 1 unité à certains des calculs.  Il se peut que je n'emploie pas le COMPTE DISTINCT correctement, ou que je ne devrait pas être l'utilisation DISTINCTE à all.

Line 13 calcule très bien, mais 15, 17, et 19 sont ne comptant pas correctly.

Can n'importe qui l'indice je dedans ?

Thanks - Hubbs
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
@strLASTEOM " de " codeSnippet803849 d'id= " de
DECLARE de class= COMME VARCHAR (10)
DÉCLARER LE @LASTEOM EN TANT QUE DATE-HEURE
PLACER le @strLASTEOM = « 2/28/2010 »
PLACER LE @LASTEOM = MOULÉ (LE @STRLASTEOM EN TANT QUE DATE-HEURE)

CHOISIR AS_OF_DT
, SOMME (STATUT DE CAS QUAND « COURANT » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [COURANT]
, SOMME (STATUT DE CAS QUAND « 30 DPD » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [30 DPD]
, SOMME (STATUT DE CAS QUAND « 60 DPD » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [60 DPD]
, SOMME (STATUT DE CAS QUAND « 90 DPD » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [90 DPD]
, SOMME (STATUT DE CAS QUAND « FC » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [FC]
, (SOMME (UPB) - SOMME (STATUT DE CAS QUAND « REO » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) - SOMME (STATUT DE CAS QUAND « A CLÔTURÉ » PUIS UPB AUTREMENT 0 EXTRÉMITÉS))COMME [PORTFOLIO_UPB]
, COMPTE (VCC_LnNum DISTINCT) COMME [Portfolio_Units]
, SOMME (STATUT DE CAS QUAND « REO » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [REO_UPB]
, COMPTE (CAS DISTINCT QUAND STATUT = « REO » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [REO_Units]
, SOMME (STATUT DE CAS QUAND « REO-SOLD » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [REO-SOLD_UPB]
, COMPTE (STATUT DISTINCT de CAS QUAND « REO-SOLD » PUIS AS_OF_DT AUTREMENT 0 EXTRÉMITÉS) COMME [REO-SOLD_Units]
, SOMME (CAS BK_ACTIVE QUAND « ACTIVE » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [BK_UPB]
, COMPTE (CAS DISTINCT BK_ACTIVE QUAND « ACTIVE » PUIS UPB AUTREMENT 0 EXTRÉMITÉS) COMME [BK_Units]


D'EOM_VCCPORT3_wMOD
LÀ OÙ ((@LASTEOM de <= d'AS_OF_DT ET >= DATEADD (d, - 1, DATEADD (millimètre, DATEDIFF (m, 0, @LASTEOM) - 4.0) d'AS_OF_DT)) OU
	           (AS_OF_DT = DATEADD (d, - 1, DATEADD (millimètre, DATEDIFF (m, 0, @LASTEOM) - 11.0))))
	 ET (LE <> DE STATUT « S'EST FERMÉ ")
	 ET (FICO ENTRE 0 ET 10000)
	 ET (Prop_Type aiment « %")
	 ET (Prop_St aiment « %")
	 ET (Occ_Status aiment « %")
	 ET ((MOD_NOW comme « %") ou (MOD_NOW EST NUL))
	 ET (VCC_LTV_Orig ENTRE 1 ET 100)   
	 
GROUPE PAR AS_OF_DT
ORDRE PAR AS_OF_DT DESC
class= de

Réponse : Problème DISTINCT de COMPTE de SQL

Le problème est celui pour la SOMME, vous peut employer AUTREMENT 0, parce que 0 n'ajoute rien à la SOMME.
Pour le COMPTE, ou le COMPTE DISTINCT - ne pas employer AUTREMENT 0.  « 0 » lui-même est compté en tant qu'un article.

, COMPTE (CAS DISTINCT QUAND STATUT = EXTRÉMITÉ de « REO » PUIS UPB) COMME [REO_Units]
, SOMME (STATUT DE CAS QUAND EXTRÉMITÉ DE « REO-SOLD » PUIS UPB) COMME [REO-SOLD_UPB]
, COMPTE (STATUT DISTINCT de CAS QUAND EXTRÉMITÉ de « REO-SOLD » PUIS AS_OF_DT) COMME [REO-SOLD_Units]
, SOMME (CAS BK_ACTIVE QUAND EXTRÉMITÉ DU « ACTIVE » PUIS UPB) COMME [BK_UPB]
, COMPTE (CAS DISTINCT BK_ACTIVE QUAND EXTRÉMITÉ du « ACTIVE » PUIS UPB) COMME [BK_Units]

En fait, vous n'avez pas besoin même de 0 pour la SOMME.  ADDITIONNER et COMPTER tous les deux sautent au-dessus des valeurs NULLES.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us