Мне нужен запрос, который без каких-либо изменений работает на этих трех разных серверах баз данных: MySQL, MSSQL, PostgreSQL.В этом запросе мне нужно вычислить столбец со следующим выражением, которое корректно работает на MySQL:
COUNT(DISTINCT field_char,field_int,field_date) AS costumernum
Поля в различном типе имеют различный тип:
field_char = character
field_int = integer
field_date = datetime
Выражениенаходится внутри родительского запроса select, поэтому, если я пытаюсь достичь результата с помощью подхода подзапроса, я оступаюсь в этой ситуации:
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
Я получаю ошибку с этим запросом, как я могу получить значениеродительского запроса?
Выражение корректно работает на MySQL, но я получаю ошибку, когда пытаюсь выполнить его на Sql Server или PostgreSQL (проблема в том, что функция count не принимает 3 аргумента другого типа на MSSQL / PostgreSQL)Есть ли способ достичь того же результата с помощью выражения, которое работает на каждом из этих серверов баз данных (SQL Server, MySQL, PostgreSQL)?