我正在vb.net中开发一个Windows应用程序。我需要根据特定条件从表中检索值。我的sql server表如下。
我的Windows窗体中有一个文本框,用于显示相应的GL_Account。用户将 paidto 值传递给后端,并且该过程必须返回相应的 GL_Account 。但还有一个标准:从数据库中检索GL_Account时,我们需要检查整个家庭。如果WholeFamily为1,则应检索以GL_Account开头的所有帐户(应从另一个表获取)。否则只有来自"这个"的GL_Account。表格需要发送。包含整个帐户信息的表格在
下面
我在这里只显示了表中的部分数据。
我创建了一个Cursor来从Account_Detail表中获取值。但在获取值后,我需要检查WholeFamily并根据我需要将值传递给前端的位。
@PaidTo(int)是从前端传递的SP参数。
DECLARE @GLAccount VARCHAR(50) DECLARE @AccountName VARCHAR(MAX)
DECLARE PV_CURSOR CURSOR
FOR
SELECT GL_Account,WholeFamily
FROM ACCOUNT_DETAIL
WHERE PaidTo=@PaidTO
OPEN PV_CURSOR
FETCH NEXT FROM PV_CURSOR
INTO @GLAccount,@AccountName
现在我被困在如何继续前进。对不起我的无知。
请帮帮我。
答案 0 :(得分:0)
我不会在这种情况下使用光标...
如果我理解你的建议是正确的,那么当Whole_family为1时,你需要从同一结果集中的另一个表中提取所有信息。根据您在Account_master中的条目,以下查询可以为每个GL_Account分配多行。
SELECT PAIDTO
, GL_ACCOUNT
, WHOLEFAMILY
, ACCOUNTNUMBER
, ENGLISHNAME
FROM ACCOUNT_DETAIL
LEFT JOIN ACCOUNT_MASTER
ON CASE
WHEN WHOLEFAMILY = 1
THEN ACCOUNT_DETAIL.GL_ACCOUNT
ELSE NULL
END = ACCOUNT_MASTER.ACCOUNTNUMBER