在下面的查询中,我只是用其数量获取项目详细信息 和速率(基于某些业务逻辑计算的数量和速率,以便使用子查询或聚合)。
SELECT ItemID,
ItemName,
(...
...
) AS ItemQty,
(....
....
) AS ItemPrice
FROM ....
现在我需要在Amount
(即ItemQty * ItemPrice
)的网格中列出这些详细信息。
Sample Output
------
ItemId ItemName ItemQty ItemPrice Amount
1 ABC 10.0 22.5 225.0
2 PQR 12.35 156.5 1932.775
我有两个选项来计算Amount
(ItemQty * ItemPrice
)
计算sql查询本身的数量
再次使用整个子查询来乘以值 或外部选择查询来计算相同的
我能跟随哪一个?
答案 0 :(得分:2)
如果您在代码中使用属性,则使用use属性进行计算。 虽然它也取决于您的查询。
i)假设一个查询不计算,结果集返回为200。
ii)计算查询返回100行。
选项i中的100行是额外的,因为您需要额外的信息来计算。
在这种情况下,计算应该在proc本身完成。
如果两个选项都返回100行,则在UI中执行计算部分。
答案 1 :(得分:1)
答案 2 :(得分:0)
将它提供给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
假设,table1有数量详情,table2有价格详情。
答案 3 :(得分:0)
您应该在UI /后端代码中计算金额,因为数量和价格也将在网格中显示。您可以通过计算金额来应用一些业务逻辑,而不会影响sql脚本的性能。