Sql 如何使用变量筛选视图中的日期?
这个问题很好Sql 如何使用变量筛选视图中的日期?,sql,views,Sql,Views,这个问题很好 SELECT M.id, M.accnt, amount = M.amount + Isnull(s.supply, 0), issued = Isnull(I.issued, 0) FROM maintbl M LEFT OUTER JOIN (SELECT id, Sum(supply) AS supply
SELECT M.id,
M.accnt,
amount = M.amount + Isnull(s.supply, 0),
issued = Isnull(I.issued, 0)
FROM maintbl M
LEFT OUTER JOIN (SELECT id,
Sum(supply) AS supply
FROM supplytbl
WHERE Month(dates) = 1 -- Month filter for Jan - feb Month(dates) in (1,2)
GROUP BY id) S
ON s.id = M.id
LEFT OUTER JOIN (SELECT id,
Sum(issued) AS issued
FROM issuedtbl
WHERE Month(dateissue) = 1 -- Month filter
GROUP BY id) I
ON I.id = M.id
但是如何在视图中执行此操作?…使用变量筛选日期?像
WHERE Month(dateissue) = textbox1.text
或者在视图中有没有任何方法可以这样查询?很高兴能帮上忙……) 如果您使用的是SQL Server,则无法将参数传递给视图 所以,您需要像这样创建存储过程
CREATE PROCEDURE testSP
(
@issue_month INT
)
AS
BEGIN
...
END
如果您使用的是SQL Server,则无法将参数传递给视图 所以,您需要像这样创建存储过程
CREATE PROCEDURE testSP
(
@issue_month INT
)
AS
BEGIN
...
END
存储过程是回答问题的最佳方式 这是密码
CREATE PROCEDURE usp_sample @Month_date_issue int
AS
SELECT M.id,
M.accnt,
amount = M.amount + Isnull(s.supply, 0),
issued = Isnull(I.issued, 0)
FROM maintbl M
LEFT OUTER JOIN (SELECT id,
Sum(supply) AS supply
FROM supplytbl
WHERE Month(dates) = 1 -- Month filter for Jan - feb Month(dates) in (1,2)
GROUP BY id) S
ON s.id = M.id
LEFT OUTER JOIN (SELECT id,
Sum(issued) AS issued
FROM issuedtbl
WHERE Month(dateissue) = @Month_date_issue -- Month filter
GROUP BY id) I
ON I.id = M.id
GO
下面是调用存储过程的步骤
using (SqlCommand cmd = new SqlCommand("usp_sample", con)) {
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Month_date_issue ", SqlDbType.Int32).Value = Int32.Parse(textbox1.text);
con.Open();
cmd.ExecuteNonQuery();
}
存储过程是回答问题的最佳方式 这是密码
CREATE PROCEDURE usp_sample @Month_date_issue int
AS
SELECT M.id,
M.accnt,
amount = M.amount + Isnull(s.supply, 0),
issued = Isnull(I.issued, 0)
FROM maintbl M
LEFT OUTER JOIN (SELECT id,
Sum(supply) AS supply
FROM supplytbl
WHERE Month(dates) = 1 -- Month filter for Jan - feb Month(dates) in (1,2)
GROUP BY id) S
ON s.id = M.id
LEFT OUTER JOIN (SELECT id,
Sum(issued) AS issued
FROM issuedtbl
WHERE Month(dateissue) = @Month_date_issue -- Month filter
GROUP BY id) I
ON I.id = M.id
GO
下面是调用存储过程的步骤
using (SqlCommand cmd = new SqlCommand("usp_sample", con)) {
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Month_date_issue ", SqlDbType.Int32).Value = Int32.Parse(textbox1.text);
con.Open();
cmd.ExecuteNonQuery();
}
CREATE PROCEDURE monthsearch
@日期时间2
作为
开始
选择*FROM WHERE=@date
结束;
称之为:
EXEC monthsearch datetime创建过程monthsearch
@日期时间2
作为
开始
选择*FROM WHERE=@date
结束;
称之为:
EXEC monthsearch datetimeaah..所以我必须在一夜之间学习这个存储过程..aah..嗯..顺便说一下..tnx mate:)我相信你会在眨眼的时间内习惯存储过程的。不客气:)。有关如何使用参数调用存储过程的信息,请参阅我编辑的帖子。我将尝试一下,伙计..tnx:)新年快乐!:)嗯..我们可以用存储过程来制作水晶报告吗?啊..所以我只需要通宵学习这个存储过程..啊..嗯..顺便说一句..tnx mate:)我相信你会很快习惯存储过程的。不客气:)。有关如何使用参数调用存储过程的信息,请参阅我编辑的帖子。我将尝试一下,伙计..tnx:)新年快乐!:)嗯……我们可以使用存储过程来生成crystal report吗?