2011-01-10 1 views
0
select count(distinct(vw_SIPMIP.product_id)) from vw_SIPMIP , sp_mip_rule 
where 
vw_SIPMIP.product_id not in (select a.product_id from vw_non_SIPMIP a) 
and sp_mip_rule.id = vw_SIPMIP.id 
and sp_mip_rule.createdby != '_IMPORT' limit 1 

Je suis continuer à obtenir cette erreurUnknown column « 2 » dans « ordre clause »

+3

Il n'existe aucune clause "2" et aucune clause ORDER dans la requête affichée. –

+1

Je sais que c'est la pire partie .... Je n'ai aucune idée d'où il obtient la "Commande" Clause de ..... – vincent

+0

Ma conjecture - le 'order by' est à l'intérieur de votre vue -' vw_SIPMIP' ou ' vw_non_SIPMIP'. Pouvez-vous poster le code pour ces vues? –

Répondre

1

votre syntaxe est incorrecte sur la distincte ... En utilisant les (parens), il pense Distinct est une fonction et en attendant que la valeur interne en tant que paramètre passe et récupère une valeur ... ce que vous voulez est ... En outre, comme vous n'avez aucune autre colonne que vous retournez, vous n'avez pas besoin d'une limite ... COUNT (*) ou COUNT (DISTINCT SomeColumn) retournera TOUJOURS une seule ligne tout seul ... pas de groupe par nécessaire.

select count(distinct vw_SIPMIP.product_id) YourDistinctCount 
    from vw_SIPMIP, 
     sp_mip_rule 
    where vw_SIPMIP.product_id not in (select a.product_id from vw_non_SIPMIP a) 
    and sp_mip_rule.id = vw_SIPMIP.id 
    and sp_mip_rule.createdby != '_IMPORT' 
Questions connexes