Compter sur DISTINCTS de plusieurs champs de travailler uniquement sur MySQL?

J'ai besoin d'une Requête qui, sans aucun changement à ces trois différentes serveur de base de données : MySQL, MSSQL, PostgreSQL .
Dans cette requête, je dois calculer une colonne avec l'expression suivante qui fonctionne correctement sur MySQL :

COUNT(DISTINCT field_char,field_int,field_date) AS costumernum

Les champs dans l'distincts, sont de type différent :

field_char = character
field_int  = integer
field_date = datetime

L'expression est à l'intérieur d'un parent requête select, donc si j'essaie d'atteindre le résultat avec une sous-requête approche, que j'ai découvert dans cette situation :

SELECT t0.description,t0.depnum
(select count(*) from (
  select distinct f1, f2, f3 from salestable t1
  where t1.depnum = t0.depnum
) a) AS numitems
FROM salestable t0

J'obtiens une erreur avec cette requête, comment puis-je obtenir la valeur de la requête parent ?

L'expression fonctionner correctement sur MySQL mais j'obtiens une erreur lorsque je tente de l'exécuter sur le Serveur Sql server ou PostgreSQL (le problème est que la fonction de comptage n'accepte pas les 3 arguments de type différent sur MYSQL/PostgreSQL), il est un moyen d'obtenir le même résultat avec une expression qui est à l'œuvre dans chacune de ces serveur de base de données (SQL Server, MySQL, PostgreSQL ) ?

OriginalL'auteur aleroot | 2011-09-02