Я построил оператор SQL, который дает правильные результаты, но производительность является реальной проблемой.Любые предложения, как улучшить его, будет принята с благодарностью.
SELECT
c~GROUP, c~CONTI, c~REGION, c~AREA, c~CNTRY,
a~COMPANY, b~MATTYPE, a~CALMONTH, a~LOC_CURRCY, a~BASE_UOM,
SUM(ZVALSTCKV) AS amount,
SUM(ZVALSTCKQ) AS quantity
INTO
TABLE @data_raw1
FROM
AD3IM AS a
INNER JOIN
PMATERIAL AS b ON a~MATERIAL = b~MATERIAL
INNER JOIN
PCOMPANY AS c ON a~COMPANY = c~COMPANY
WHERE
a~COMPANY IN @rangettable_COMPANY AND
CALMONTH IN @rangetable_CALMONTH AND
(b~MATTYPE = @constant_O OR b~MATTYPE = @constant_T) AND
b~OBJVERS = 'A' AND
c~OBJVERS = 'A'
GROUP BY
a~COMPANY, b~MATTYPE, a~CALMONTH, a~LOC_CURRCY, a~BASE_UOM,
c~GROUP, c~CONTI, c~REGION, c~AREA, c~CNTRY
AD3IM имеет около 2,8 млн. Записей и в качестве первичного ключа:
COMPANY
SITECD
MATTYPE
CMATERIAL
CALMONTH
LOC_CURRCY
BASE_UOM
, дальнейшие индексы отсутствуют.
PMATERIAL - это около 254 000 записей, а в качестве основногоключ:
CMATERIAL
OBJVERS
и дальнейшие индексы отсутствуют.
PCOMPANY содержит около 14.000 записей, а в качестве первичного ключа:
COMPANY
OBJVERS
и дальнейшие индексы отсутствуют.
Будучи новичком в SQL, я ценю любую помощь, которую вы можете предложить.Спасибо.