【发布时间】:2020-01-01 07:43:40
【问题描述】:
我正在尝试使用新列更新 Crystal 报表。此报告(“员工名册”)查看一张表(PREH)并列出一些详细信息,重要的是员工、公司和工艺。用户指定参数(公司、工艺、特定员工 [可选]),报告会显示该工艺/日期范围内的所有员工以及他们的一些其他详细信息。
我想在给定的工艺中为他们的“工作时间”添加另一列,其详细信息可在另一个表 PRTH 中找到。在 PRTH 中,每个“增加的小时数”条目都有一行,对于给定的员工,可能有数百或数千条。用于此的 SQL 类似于:
SELECT SUM(Hours)
FROM dbo.PRTH
WHERE PRTH.Employee=%Employee
AND PRTH.Craft=%Craft
AND PRTH.Company=%Company
AND PRTH.EarnCode NOT IN ('5','6','52','60','100','103')
我发现的主要问题是我不能只做一个简单的连接,因为这会导致很多行膨胀。现在,报告为每个员工列出了一条线(按工艺分组)——如果我加入我需要的表格,那么它会为每个员工生成很多行。我想根据“详细信息”部分中正在查看的当前员工添加仅小时摘要。我可以在 SQL 中做我想做的事,但不确定如何在 Crystal Reports 中传递它,最终尝试在第二次搜索中使用主报表的结果作为参数。
非常感谢任何帮助,谢谢。
当前报告的样本输出(参数=公司 1,工艺=46T)
EE# SortName FullName Co Craft
1553 BOBJONES Jones, Bob 1 46T
1672 RACHELJONES Jones, Rachel 1 46T
2007 TANYAADAMS Adams, Tanya 1 46T
在上面的输出中,我会尝试添加一个新列“TotalHours”。对于第一行,我希望它使用 Bob Jones 的“%Employee”的 EE、“%Craft”的 Craft 和“%Company”的 Company 来运行 SQL 语句。
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。例如,您提到了
join,但您的查询只有一个表。 -
加入是我试图探索的一种可能途径,但尚未完成任何工作 - 我将使用一些示例数据进行更新。
-
更新了更多输出/数据示例。
标签: sql sql-server crystal-reports