Я новичок в SQL и работаю со следующим кодом, предоставленным нам одним из наших поставщиков:
SELECT DISTINCT MriPatients.PatientID
INTO #UniquePt
FROM MriPatients
INNER JOIN #TotalPopulation ON MriPatients.PatientID = #TotalPopulation.PatientID
Set @TotalUniquePatients = (Select Count(*) FROM #UniquePt)
Что происходит, если строка Set приводит к тому, что @TotalUniquePatients устанавливается в 0, хотяВ нашей базе данных есть много уникальных идентификаторов пациентов.Затем это значение затем используется в качестве знаменателя в делении, которое вызывает ошибку деления на 0.
Теперь мне кажется, что это легко исправить, используя COUNT DISTINCT в таблице MriPatients;тогда вам вообще не нужно создавать #UniquePt ... это единственное место, где используется таблица.Но я не понимаю, почему код при получении #UniquePt получает 0 результата.Если вы удаляете INNER JOIN, набор возвращает правильный результат ... так, что INNER JOIN делает с #UniquePt?
Если это имеет значение, мы используем SQL Server 2008.