【发布时间】:2014-09-07 13:34:20
【问题描述】:
我在一个表单上有两个下拉菜单。第二个下拉列表根据在第一个下拉列表中选择的值进行填充。两个存储过程查询中的一个基本上显示了 @LocID 的值不匹配在第一个下拉列表中选择的不存在的数据,并且还执行子查询,其中没有为与声明的 @LocID 匹配的任何内容返回邮政编码。
DECLARE @LocID INT;
SELECT
DISTINCT l.[ZipCode],
[Description] = l.ZipCode + ' - ' + l.Description
FROM LocMap l
WHERE l.ZipCode NOT IN (
SELECT l2.ZipCode
FROM LocMap l2
WHERE l2.LocID = @LocID
);
名为 LocMap 的表。
LocID | ZipCode | Description
----------------------------------
100 | 91012 | Magical Sky
100 | 91013 | Dream Land
101 | 91012 | Blue Ocean
102 | 91012 | Gray Screen
104 | 91014 | Limit Break
108 | 91016 | Magic Hammer
我的问题是我的第二个存储过程,它也将数据返回到标记为“最近添加”的第二个下拉列表。它基本上查询一个表并返回它的所有数据(邮政编码+描述),没有条件或任何东西。我想知道的是是否可以在同一台服务器上查询两个数据库,如果可以,我将如何使用第二个表的存储过程查询对上面的存储过程执行相同的数据过滤.第一个存储过程具有@declare LocID,但第二个存储过程所做的只是返回所有内容而不声明任何内容。
1) 推荐的方法是什么。是否可以从第一个存储过程中获取结果并执行类似于使用最近添加过滤掉我的数据的子查询?就像第一个查询一样,我也不想返回与第二个表结果中传递的 LocID 匹配的任何邮政编码。
名为“RecentAdded”的第二个存储过程表
ZipCode | Description
----------------------------------
91018 | Zelda
91019 | Sephiroth
91012 | Cloud
91012 | Aeris
91011 | Tifa
91010 | Barrett
Dropdown Layout Example
[Select LocID] (First Dropdown)
100
104
108
120
[Select ZipCode - Description] (Second Dropdown]
---Recently Added---
91010 - Barrett
91018 - Zelda
......................
......................
......................
---All other ZipCodes---
91016 - Magic Hammer
91014 - Limit Break
......................
......................
......................
【问题讨论】:
标签: sql sql-server tsql stored-procedures