我有一个连接到存储所有数据的SQL Server的传统VB6应用程序。我正在为用户创建一个报告,我需要传递两个日期(FROM和TO)。在SQL Server中,我创建了几个满足我所有条件的视图,并使用这些数据填充dbo.tblTempTable
(实际上并不是#tempTable
,而是普通表)。目前这些日期是硬编码的,我正在努力寻找一种传递这些日期的方法。我很确定我无法将参数传递给视图。要填充我有一个简单的存储过程是这样的表....使用来自SQL Server的数据在Access中生成报告?
TRUNCATE TABLE dbo.tbl_TTableReport
INSERT INTO tbl_TTableReport (UserID, CompanyID, CompanyName, Sold, Voided, Returned, Subtotal)
SELECT
1234 AS USERID, CompanyID, CompanyName,
Sold, Voided, Returned, Subtotal
FROM dbo.vCompanyInfo
所以在这个select语句,每一个数据都来自于我的最终意见..vCompanyInfo
。 Sold,Voided和Returned需要按FROM和TO日期过滤。我会如何做这样的事情?
EDITED。我试图创建一个存储过程,但我得到了一些奇怪的错误......我从来没有创建一个复杂的多SELECT语句SP之前,所以我仍然试图找出扭曲。
这是我trynig建立与选择语句的SP,但我一直看到相同的错误:子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。
TRUNCATE TABLE dbo.tbl_TTableReport
INSERT INTO tbl_TTableReport
(UserID
, CompanyID)
, CompanyName)
SELECT 1234 AS USERID
,(Select CompanyID from dbo.tblMainInv)
,(select CompanyName from dbo.tblCompanies)
对于这两种CompanyID和公司名称有大约30的值。我试图让他们加载到表中,我不知道我的错误在哪里。
为什么不能只使用带有where子句的select查询将需要的数据直接提取到客户端应用程序? –
@BrianPressler我编辑了这个问题。请看 – barry17
您的编辑不回答我的问题......它只会提出更多问题。为什么你需要临时表?您可以将报表的数据源设置为:SELECT 1234 AS USERID,CompanyID,CompanyName,Sold,Voided,Returned,Subtotal FROM dbo.vCompanyInfo其中<开始日期参数>和<结束日期参数>之间出售...等 –