Crystal reports 将GROUPBY子句添加到crystal报表
我有一个带有查询的报告,该查询用于包含每个项目的客户机id。客户(老板)希望每个记录有多个客户。这很简单-用一个新表ItemClients(item id,client id)替换client id字段,并在item-id上连接 现在的问题是报告-当然,每次有客户时,每个项目都会重复,但我只希望报告中的项目有一个副本-无论一个项目有多少客户。此外,还有按客户端过滤报告的功能,我在MySql中可以很好地完成这项工作,在以前的单客户端版本中也可以很好地完成这项工作 我的解决方案是在查询中添加一个GROUPBYITEMID子句(MySql允许这样做)。问题是如何将GROUPBY子句添加到报表中。任何分组的尝试都会被解释为报告分组,我不希望这样。我试图将整个查询作为一个命令来执行,这在一段时间内奏效,但现在整个报告崩溃了,使我的web服务器崩溃 任何见解都会有所帮助。谢谢 (编辑) 下面是命令中的(混合)代码,GROUPBY子句是我添加的,其余的是从crystal的SHOWSQL命令中刮取并修改的。(顺便说一句,这是一份次级报告)Crystal reports 将GROUPBY子句添加到crystal报表,crystal-reports,Crystal Reports,我有一个带有查询的报告,该查询用于包含每个项目的客户机id。客户(老板)希望每个记录有多个客户。这很简单-用一个新表ItemClients(item id,client id)替换client id字段,并在item-id上连接 现在的问题是报告-当然,每次有客户时,每个项目都会重复,但我只希望报告中的项目有一个副本-无论一个项目有多少客户。此外,还有按客户端过滤报告的功能,我在MySql中可以很好地完成这项工作,在以前的单客户端版本中也可以很好地完成这项工作 我的解决方案是在查询中添加一个GR
您可以发布您在命令中添加的查询吗?这在目前是不可能的-专有客户端数据。我需要一段时间来消毒。对不起,我不明白。当您说希望报表中有一个“项”时,是指整个报表有一个项,还是希望报表按项分组(即每个项只有一个节)?例如,如果有3个客户端附加到一个项,则由于联接,查询将返回该项的3行。我只想要项目本身,而不是关于客户的信息。如果crystal允许,我也可以在查询中使用“UNIQUE”。(不包括客户端id或任何内容)我已经通过制作两个报告半解决了这个问题-一个是client=0(all),另一个是client=。应用程序中的逻辑决定调用哪一个。
SELECT `ITEM`.`Date`, `ITEM`.`Started`, `ITEM`.`Stopped`, `TERM`.`Terminal`, `ITEM`.`TonnesLoaded`, `ITEM`.`LoadID`,
`ITEM`.`TotalLoaded`, `ITEM`.`ToGo`, `ITEM`.`OrderId`,
`COM`.`Commodity`,
`berths1`.`Berth`,
`CQ`.`LotNo`, `CQ`.`CategoryID`,
`IC`.`ClientId`
FROM `berths` `berths1`
INNER JOIN `Items` `ITEM` ON `berths1`.`BerthID`=`ITEM`.`BerthID`
INNER JOIN `terminals` `TERM` ON `berths1`.`TerminalID`=`TERM`.`TerminalID`
INNER JOIN `Quantities` `CQ` ON `ITEM`.`ItemId`=`CQ`.`ItemId`
AND `ITEM`.`OrderId`=`CQ`.`OrderId`
INNER JOIN `commodities` `COM` ON `CQ`.`CommodityID`=`COM`.`CommodityID`
LEFT OUTER JOIN `ItemClients` `IC` ON `CQ`.`OrderId`=`IC`.`OrderId`
AND `CQ`.`ItemId`=`IC`.`ItemId`
WHERE `ITEM`.`OrderId`={?Pm-details.OrderId}
AND ( {?Pm-?Category}=0 AND {?Pm-?ClientId}=0 )
OR (
`CQ`.CategoryID>0
AND `CQ`.CategoryID = {?Pm-?Category}
AND ( {?Pm-?ClientId}=0 OR IC.ClientId = {?Pm-?ClientId} )
)
OR ( {?Pm-?ClientId}>0 AND IC.ClientId = {?Pm-?ClientId} AND {?Pm-?Category}=0 )
GROUP BY `ITEM`.`ItemId`
ORDER BY `ITEM`.`Date`, `ITEM`.`Started`, `ITEM`.`LoadID`