我想根据某些条件创建一个查询。
我有一个程序,一个程序有很多包。然后包装显示根据哪个包被分配给承包商的条件然后它将显示在一列中。包裹和金额将在不同的列中计算这些包裹分配给承包商。
条件1:如果这些包裹被分配给承包商。然后这在类别列中显示1。和进度阶段列显示合同授予。 然后将分配给承包商的包裹数量将显示在数字中。如果承包商没有获奖,那么它将进入第二个条件。
条件2:某些包被分配到价格评估中,然后显示在一列中,金额也将显示在一列中。
条件3:某些包被分配到技术评估下的投标,然后显示在一列中,金额也将显示在一列中。
在第二种情况下,你确实得到了日期,然后进入第三种情况并检查是否有技术日期,该包将显示在3类中。
转换率有一些公式。
表名
tblPrograms
(vsSysProgramId)tblProgramsAndPackages
(vsSysProgramId,iPackage)tblPackages
(iPackageId)tblPkgContractAwardDetails
(iPackageId,iCurrency)tblCurrencies
(iCurrencyId)tblPkgDPRBidSubmissionDetails
(iPackage,dtCEAgreement(date column)示例:
1.Stage of progress 2.Category 3.No 4.Packages 5.Amount(INR) 6.Amount(Jpy) 7.Amount(USD) 8.%Progress
Contracts Awarded I 2 Pac1,Pac2 100 50 200 Amount/totalamount
BidsUnderPrice II 2 Pac3,pac4 50 60 120
Total 4 150 110 320
答案 0 :(得分:0)
听起来您的问题是确定要使用的查询或查询以及一些相当复杂的报表布局和格式要求的混合。
不要尝试在T-SQL查询中同时执行这两项操作:您将遇到难以理解和调试的复杂,慢速查询,甚至更难以增强。
我认为最终您的数据会在某个地方显示,无论是在屏幕上还是在报告上。我的建议是使用报告工具或网页的功能来评估您的各种条件,并确定应隐藏或显示的内容。然后,编写查询,尽可能简单地管理,以返回条件和显示所需的数据。
T-SQL不是一种报表编写工具,它不具备处理复杂数据格式要求的能力。这些问题最好留给ASP.NET和SSRS这样的工具,它们可以像布局,逻辑和数据格式一样灵活。