【问题标题】:SQL Server query for a VB dropdown listVB 下拉列表的 SQL Server 查询
【发布时间】:2015-03-02 21:29:50
【问题描述】:

我正在管理一个在 SQL Server 2008 R2 上运行的“erp 类型”VB 程序。该程序允许用户为存储在其保管库中的每个文件拥有一张卡片。这些卡片内置于管理工具中,您可以添加组合框、下拉列表等元素。您还可以将 SQL 查询添加到下拉列表中。所以我在 SQL Server 数据库中有这两个表:

USERS:

USERID / NAME / USERGROUPID

USERGROUPS:

USERGROUPID / USERGROUPNAME

我想在通过查询连接到 SQL 的卡片中添加 2 个下拉列表,但我希望将第 2 个下拉列表与第 1 个中的选择相连接。第一个询问用户组名称,第二个询问先前选择的用户组中的名称。

我发现第一个下拉列表应该是:

SELECT USERGROUPNAME 
FROM USERGROUPS

第二个应该是这样的:

SELECT NAME
FROM USERS
INNER JOIN USERGROUPS ON USERS.USERGROUPSID = (USERGROUPS.USERGROUPID FROM PREVIOUS SELECTION)

如何修改第二个查询以获得我需要的数据?

【问题讨论】:

  • 之前的选择是整个表,所以为什么不ON USERS.USERGROUPSID=USERGROUPS.USERGROUPID

标签: sql list dynamic populate


【解决方案1】:

您可以对第二个查询使用以下查询。它将选择与您选择的 GroupName 匹配的所有 NAME

SELECT NAME
FROM USERS usrs
INNER JOIN USERGROUPS usrgrps ON usrs.USERGROUPSID=usrgrps.USERGROUPID
WHERE usrgrps.USERGROUPNAME='VALUE FROM DROPDOWN 1';

【讨论】:

  • 我知道我必须在那里添加值,但我必须先将其声明为变量吗?如果是的话,我该怎么做?我需要一个存储过程吗?
  • 是的,如果您需要将该用户选择的值(从下拉列表中)提供给您需要一个变量的查询。你不需要存储过程。你可以有一个功能。您可以将变量作为参数传递给该函数,并在函数内部执行所有操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2017-08-04
  • 1970-01-01
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多