,谢谢。我是新手,正在撰写我的第一份报告。我有订单,有一个终端分配给他们(“ DC”)。该报告设置为返回所有未结订单,“ DC”以及其他一些列(驱动程序编号,城市等)。我制作了一个下拉过滤器以使用,因此我可以查看一个,几个或所有DC。我的问题是,它停止照顾下拉列表中选中的第一个项目。因此,如果列表中的第一个项目有100个订单,但其余的有数千个,则只会显示100个订单。我在这里有意义吗?我不确定报告设置中的哪些信息与此处相关。
这是报表所基于的查询。使用SQL Report Builder。
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
答案 0 :(得分:0)
(我将其写为答案,即使它不是一个完整的答案,主要是因为评论字段有限。)
在您发布的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)
其中value1和value2来自下拉列表。
我在您选择的部分中看到,您在两个Terminals JOIN中都包含同一列,并且我希望这两列始终具有相同的值。您应该只在选择列表中一次需要该列。
不是解决方案,但也许可以使您朝正确的方向前进。