我在SQL Server 2016中创建了一个存储过程,该存储过程的目的是在表中提供包含以下字符串的销售建议总数[建议表中的@Recommendation]:在任何给定日期之后“销售记录中的____文档DOB” 。我也想将此结果放入临时表中。
有用的表格信息:
我在其中获取数据的参考表:建议 建议表中的相关字段是@Recommendation和@SalesProcessTime @Recommendation字段是VARCHAR(255),@ SalesProcessTime是DATETIME 无论我将日期更改为什么-甚至即使将其设置为=,> =等,也会显示相同的数值。
如果您还有其他需要,请随时问我。
USE [Test_Database]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE usp_SalesRefCount
AS
BEGIN
--IF OBJECT_ID('tempdb..DocDOB') IS NOT NULL DROP TABLE #DocDOB
DECLARE @NumRecs INT;
-- Count of the number of recommendations
SELECT @NumRecs = COUNT(Recommendation)
FROM [Master_AGGREGATE].[dbo].[Recommendations]
WHERE Recommendation = '____Document DOB in pt record'
and SalesProcessTime > '2018-10-20'
CREATE TABLE ##RefCount (NumberOfRecs INT);
INSERT INTO ##RefCount
SELECT @NumRecs
END
EXEC usp_SalesRefCount
SELECT * FROM ##DocDOB
为什么要使用全局临时表?为什么不直接从过程中返回结果呢?例如:
CREATE PROCEDURE usp_SalesRefCount
AS
BEGIN
DECLARE @NumRecs INT;
SELECT @NumRecs = COUNT(Recommendation)
FROM [Master_AGGREGATE].[dbo].[Recommendations]
WHERE Recommendation = '____Document DOB in pt record'
and SalesProcessTime > '2018-10-20'
SELECT @NumRecs NumRecs
END
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。