При подсчете файлов при соединении этой таблицы с другой возникает проблема. Либо я получаю больше или меньше, чем должно быть.
Используя этот простой запрос, я могу получить правильный счет:
select count(files.id)
from files
where files.OpeningDate between '2015-11-01' and '2015-11-30'
and files.CustomerID = 3258
Результат: 420
Когда я пытаюсь интегрировать его в более сложный запрос:
SELECT
FORMAT(files.OpeningDate, 'yyyy-MM') as OpeningDateFormatted,
SUM(CASE WHEN transactiontypeid IN (2, 5) THEN amount ELSE 0 END) AS AdjustmentSum,
SUM(CASE WHEN transactionTypeID = 1 THEN amount ELSE 0 END) AS InterestSum,
SUM(CASE WHEN transactionTypeID IN (8, 17, 25, 18) THEN amount ELSE 0 END) AS CreditSum,
SUM(CASE WHEN transactionTypeID IN (10, 7, 12, 14, 11, 21) THEN amount ELSE 0 end) AS PaymentSum,
COUNT(DISTINCT(files.id)) AS count1,
COUNT((files.id)) AS count2
FROM
files
LEFT JOIN
filestransactions ON files.id = filestransactions.exid
WHERE
FilesTransactions.TransactionDate BETWEEN '2015-10-01' AND '2019-09-30'
AND ExID IN (SELECT id
FROM files
WHERE files.OpeningDate BETWEEN '2015-10-01' AND '2019-09-30'
AND files.CustomerID = 3258)
GROUP BY
FORMAT(files.OpeningDate, 'yyyy-MM')
ORDER BY
OpeningDateFormatted
Количество 1: 296, Количество 2: 481 за 2015-11
Я пробовал разные комбинации слева / справа/ внутреннее объединение с и без отчетливого, я также пытался использовать подзапрос, но я не могу получить правильный счет, который составляет 420.
Могу ли я получить некоторые советы, чтобы встать на правильный путь?