C# 在SQL查询或UI代码中计算金额(数量*价格)
在下面的查询中,我只获取带有数量的项目详细信息 和费率(基于某些业务逻辑计算数量和费率,以便使用子查询或聚合) 现在我需要用C# 在SQL查询或UI代码中计算金额(数量*价格),c#,mysql,sql,sql-server,C#,Mysql,Sql,Sql Server,在下面的查询中,我只获取带有数量的项目详细信息 和费率(基于某些业务逻辑计算数量和费率,以便使用子查询或聚合) 现在我需要用金额(即ItemQty*ItemPrice)在网格中列出这些详细信息 我有两个选项来计算金额(ItemQty*ItemPrice) 在sql查询本身中计算金额 再次使用整个子查询将值相乘 或外部选择查询来计算相同的值 将数据绑定到网格时,使用UI/代码部分计算ItemQty*ItemPrice 在这方面,我可以遵循哪一条?将它交给SQL,它会更快。 如果给UI线程,浏览器可
金额(即ItemQty*ItemPrice
)在网格中列出这些详细信息
我有两个选项来计算金额(ItemQty*ItemPrice
)
在sql查询本身中计算金额
再次使用整个子查询将值相乘
或外部选择查询来计算相同的值
将数据绑定到网格时,使用UI/代码部分计算ItemQty*ItemPrice
在这方面,我可以遵循哪一条?将它交给SQL,它会更快。
如果给UI线程,浏览器可能会基于行数冻结。
不要使用子查询,总是尝试SQL连接
SELECT ItemID,
ItemName,
ItemQty,
ItemPrice
(ItemQty * ItemPrice) as Amount
FROM table
SELECT ItemID,
ItemName,
table1.ItemQty,
table2.ItemPrice
(table1.ItemQty * table2.ItemPrice) as Amount
FROM table inner join ....
table2 inner join ....
table3
假设,表1有数量详细信息,表2有价格详细信息。您应该在UI/后端代码中计算金额,因为数量和价格也将显示在网格中。您可以在计算数量时应用一些业务逻辑,而不会影响sql脚本的性能 您应该通过在UI中进行逻辑隔离
这个链接很好地解释了你的问题
希望这有帮助 如果在代码中使用属性,则使用属性进行计算。
尽管这也取决于您的查询
i) 假设一个查询不计算,结果集返回值为200
ii)计算查询返回100行
在选项i)中,100行是额外的,因为您需要额外的信息来计算
在这种情况下,计算应该在proc本身中完成
如果两个选项都返回100行,则在UI中执行计算部分。以上查询只是显示场景的示例。示例数据和您尝试过的查询将更有帮助@Suraz,thanx,增加了示例输出,但问题很简单,我在哪里可以计算sql查询本身或UI代码部分中的数量(数量*比率)?@abdul rasheed,在给定的链接中,我喜欢“Aristos”回答这就是我想说的。@KumarHars,谢谢你的建议,我得到了混合答案,所以我需要一些时间来阅读每一个答案和链接,从而得出一个解决方案,所以你的建议是,在UI部分进行计算(结果集中返回的记录在这两种情况下总是相同的,没有额外的计算记录)?是的。首选的方法是使用propert,以便在多个地方重用相同的代码。
Sample Output
------
ItemId ItemName ItemQty ItemPrice Amount
1 ABC 10.0 22.5 225.0
2 PQR 12.35 156.5 1932.775
SELECT ItemID,
ItemName,
ItemQty,
ItemPrice
(ItemQty * ItemPrice) as Amount
FROM table
SELECT ItemID,
ItemName,
table1.ItemQty,
table2.ItemPrice
(table1.ItemQty * table2.ItemPrice) as Amount
FROM table inner join ....
table2 inner join ....
table3