Я пытаюсь извлечь данные и поместить их в отчет Stimulsoft. У меня проблема в том, что мне нужно вывести его в два столбца. Мне также нужно, чтобы каждая запись «менеджера» отображалась, даже если счет, присвоенный указанной записи, равен NULL.
Это то, что у меня есть на данный момент:
DECLARE @ManagerCount INT = (( SELECT Count(*) FROM AM WHERE dbo.AM.AMCurrent = 1 AND dbo.AM.OmitInReport = 0 ) + 1) / 2
DECLARE @tmp_AM1 TABLE (AMID INT, AMName NVARCHAR(100), ID INT)
INSERT INTO @tmp_AM1 SELECT AMID, AMName, row_number() over (order by AMID ) FROM AM
WHERE dbo.AM.AMCurrent = 1 AND dbo.AM.OmitInReport = 0
SELECT * FROM (
SELECT ta.id AS id1, ta.AMName AS ManagerName1, COUNT(*) AS ManagerCount1 FROM @tmp_AM1 tA INNER JOIN Job J ON tA.AMID = j.AMID
WHERE ta.ID BETWEEN 1 AND @ManagerCount AND j.jobStatusID != 5
GROUP BY ta.ID, ta.AMName
) a
LEFT JOIN
(
SELECT ta.id AS id2,ta.AMName AS ManagerName2, COUNT(*) AS ManagerCount2 FROM @tmp_AM1 tA INNER JOIN Job J ON tA.AMID = j.AMID
WHERE ta.ID > @ManagerCount AND j.jobStatusID != 5
GROUP BY ta.AMName, ta.ID
) b ON a.id1 + @ManagerCount = b.id2
Что в итоге возвращает что-то вроде:

Есть 18 менеджеров, поэтому по 9 на столбец, но этот код не показывает их все, поскольку все, что не имеет счетчика в первом левом соединении, не будет отображаться, и, следовательно, та же строка в столбце 2 не отображается. не показывать.
Результаты SELECT * FROM @ tmp_AM1:
