Фильтрация отчетов SQL, результаты останавливаются после первого элемента - PullRequest
0 голосов
/ 06 декабря 2018

и заранее спасибо.Я новичок, работаю над одним из моих первых докладов.У меня есть заказы, которым назначен терминал («DC»).Отчет настроен на возврат всех открытых ордеров, «DC» и нескольких других столбцов (номер водителя, город и т. Д.).Я сделал выпадающий фильтр, чтобы использовать один, несколько или все контроллеры домена.Моя проблема в том, что он перестает искать первый элемент, который отмечен в выпадающем списке.Поэтому, если у первого элемента в списке 100 заказов, а у остальных - еще тысячи, он показывает только 100 заказов.Имею ли я здесь смысл?Я не уверен, какая информация из настроек моего отчета была бы уместна здесь.

Это запрос, на котором основан отчет.Использование построителя отчетов SQL.

SELECT
o.OrderTrackingID,
cm.accountno,
o.ClientRefNo,
o.DCoName,
o.DStreet,
o.DCity,
o.DState,
o.DZip,
o.DZone,
t.TerminalName as 'OrderDC',
e.LastName as 'DrvLast',
e.FirstName as 'DrvFirst',
e.DriverNo,
et.TerminalName as 'DriverDC'
FROM Orders o
FULL JOIN OrderDrivers od ON o.OrderTrackingID = od.OrderTrackingID
FULL JOIN Employees e ON od.DriverID = e.ID
FULL JOIN ClientMaster cm ON o.ClientID = cm.ClientID
FULL JOIN Terminals t ON o.TerminalID = t.TerminalID
FULL JOIN Terminals et ON e.TerminalID = et.TerminalID
WHERE o.Status = 'N'
Order By o.aTimeStamp ASC

1 Ответ

0 голосов
/ 06 декабря 2018

(Я пишу это как ответ, даже если он не является полным ответом, в основном потому, что поле комментария ограничено.)

В SQL, который вы разместили, ниже выдается неправильное

FULL JOIN Terminals t ON o.TerminalID = t.TerminalID
FULL JOIN Terminals et ON e.TerminalID = et.TerminalID

Вы присоединяетесь к одной и той же таблице дважды, но ничто не разделяет два объединения, и я думаю, почему вы не получаете больше заказов в своем отчете.

Я неТеперь, что соответствует раскрывающемуся списку, но я предполагаю, что это какой-то идентификатор в таблице Terminals.

С точки зрения чистого SQL, я ожидал бы что-то подобное

FULL JOIN Terminals t ON o.TerminalID = t.TerminalID
WHERE t.someColumn IN (value1, value2)

где значения1 и значение2 взяты из раскрывающегося списка.

В выбранной вами части я вижу, что вы включаете один и тот же столбец из обоих терминалов JOIN, которые у вас есть, и я ожидаю, что эти два столбца всегда будут одинаковымиценности.Этот столбец вам может понадобиться только один раз в списке выбора.

Не решение, но, возможно, это поможет вам в правильном направлении.

...