【发布时间】:2010-09-29 14:16:43
【问题描述】:
像这样调用 UDF:
SELECT
product_name,
SUM(quantity) AS SumQty,
SUM(face_value) AS SumFaceValue,
SUM(net_cost)AS SumNetCost,
SUM(face_value - net_cost) AS SumScripRebate,
organization_name
FROM getSalesSummary(@GLSCOrgId, @BeginDate, @EndDate) getSalesSummary
GROUP BY product_name, organization_name
ORDER BY product_name
产量:
"Chili's 1 25.00 22.75 2.25 Sample Organization 1
CVS/pharmacy 1 25.00 23.50 1.50 Sample Organization 1
Macy's 1 100.00 90.00 10.00 Sample Organization 1"
使用 UDF 逻辑并使用 SELECT 测试结果:
SELECT
product_name,
SUM(quantity) AS SumQty,
SUM(face_value) AS SumFaceValue,
SUM(net_cost) AS SumNetCost,
SUM(face_value - net_cost) AS SumScripRebate,
organization_name
FROM @ReturnTable
GROUP BY product_name, organization_name
ORDER BY product_name
产量:
"Chili's 4 100.00 91.00 9.00 Sample Organization 1
CVS/pharmacy 1 25.00 23.50 1.50 Sample Organization 1
Macy's 1 100.00 90.00 10.00 Sample Organization 1"
@ReturnTable 是 UDF 返回的表,创建方式如下:
INSERT INTO @ReturnTable(product_name,
unit_price,
quantity,
face_value,
net_cost,
organization_name)
(select * from @TablePartial UNION select * from @TableClosed)
使用 SELECT 和变量的测试返回正确的数据,但调用 UDF 并没有获取其他 3 个 Chili 的记录。我对参数使用相同的数据。我对 UDF 很陌生,我不确定为什么它会返回与 SELECT 不同的数据。有什么建议和/或答案吗?
【问题讨论】:
-
你可以为表格、数据和函数生成脚本并在这里发布它可以提供更多想法
标签: sql sql-server user-defined-functions