После миграции из базы данных MySQL в базу данных Sybase мне нужно переписать некоторые коды.К сожалению, я не могу найти правильный способ сделать это, я привожу короткий пример одного из кодов, он был автоматически написан дизайнером Business Object Universe.Главным образом я хотел бы понять, как правильно изменить эти правые = * или левые * = соединения, чтобы я мог самостоятельно изменять другие коды.Причина в том, что Sybase не позволяет использовать как ANSI, так и Transact-SQL в одном выделении.
Попытка изменить его только на внешние объединения, но результаты неверны - слишком много данных.
SELECT DISTINCT
Y15YVF_FLEET_P.FLEET_NUM,
AVG(Y15YVF_INVOICE.REVAL),
Y15YVF_FLEET_P.LCTYP,
Y15YVF_FLEET_P.DIVISION
FROM
Y15YVF_CONTRACT INNER JOIN Y15YVF_FLEET_A ON (Y15YVF_FLEET_A.MANDT=*Y15YVF_CONTRACT.MANDT and Y15YVF_FLEET_A.FLEET_NUM=*Y15YVF_CONTRACT.FLEET_NUM and Y15YVF_FLEET_A.CTNR=*Y15YVF_CONTRACT.CTNR)
INNER JOIN Y15YVF_VEHICLES ON (Y15YVF_VEHICLES.FLEET_NUM=Y15YVF_FLEET_A.FLEET_NUM and Y15YVF_VEHICLES.MANDT=Y15YVF_FLEET_A.MANDT)
INNER JOIN Y15YVF_FLEET_P ON (Y15YVF_VEHICLES.FLEET_NUM=Y15YVF_FLEET_P.FLEET_NUM and Y15YVF_VEHICLES.MANDT=Y15YVF_FLEET_P.MANDT)
INNER JOIN Y15YVF_INVOICE ON (Y15YVF_FLEET_A.MANDT=*Y15YVF_INVOICE.MANDT and Y15YVF_FLEET_A.FLEET_NUM=*Y15YVF_INVOICE.FLEET_NUM)
WHERE
(
Y15YVF_INVOICE.REDAT >= '20040601'
AND Y15YVF_VEHICLES.MANDT != @variable('Stichtag:')
AND Y15YVF_FLEET_A.OWNSH = 'L'
AND Y15YVF_CONTRACT.LEABEG != '00000000'
)
GROUP BY
Y15YVF_FLEET_P.FLEET_NUM,
Y15YVF_FLEET_P.LCTYP,
Y15YVF_FLEET_P.DIVISION
Я также добавляю ссылку на пример данных, так как существует слишком много данных, не уверен, будет ли их достаточно для проверки: Данные