我正在尝试使用新列更新Crystal Report。该报告(“员工名册”)查看一张表(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')
我发现的主要问题是我不能做简单的连接,因为这会导致很多行膨胀。现在,该报告为每位员工分配了一行(按工艺分组)-如果我加入需要的表格,那么它将为每位员工分配很多行。我想补充只是时间的总结,根据该关就是BEING看着在细节部分目前的员工。我可以在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的EE代表“%Employee”,他的Craft代表“%Craft”和他的Company代表“%Company”来运行SQL语句。
听起来您要达到的目的只是这样:
SELECT [EE#], SortName, FullName, Co, Craft,
(SELECT SUM(Hours)
FROM dbo.PRTH
WHERE PRTH.Employee=e.Employee
AND PRTH.Craft=e.Craft
AND PRTH.Company=e.Company
AND PRTH.EarnCode NOT IN ('5','6','52','60','100','103')) AS TotalHours
FROM TableWithEmployees AS e
WHERE PRTH.Employee=%Employee
AND PRTH.Craft=%Craft
AND PRTH.Company=%Company;
你是这个意思吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。