根据重复值选择行

时间:2014-01-06 11:54:46

标签: mysql sql sql-server stored-procedures filtering

我基本上有结果网格,我的应用程序上有一个下拉菜单,用于过滤“运营商”列。但是当选择某个运营商时,我希望返回的所有行与已选择的运营商具有相同的dr_id。

例如,如果您查看附加的图片,它会显示我的结果网格。如果我按运营商'ACE CALL LTD_UK'过滤,那么我想要返回第27,28,29和30行,因为dr_id是相同的。

enter image description here

由于

1 个答案:

答案 0 :(得分:1)

我没有完整的解决方案,因为我不确切知道您的数据库架构是什么(并且它是一个大型存储过程!)。不过,我确实有一些您可能会发现有用的建议/意见:

我假设当过滤器设置为'ACE CALL LTD_UK'时,存储过程当前将返回单行,如果没有,那么这可能不相关!

在这种情况下,我要做的是带你SELECT语句并将结果放入CTE,临时表或嵌套查询。 (我不确定你使用的是什么SQL DBMS,看起来像MSSQL,但你也有一个MySQL标签发布)。

一旦我得到了这些结果,我就会使用临时表中LEFT JOIN的{​​{1}}返回到同一列的dr_id表。从这里开始,您将再次需要加入其他数据不相同的表,例如drm表,然后选择所需的列。

您可以在现有的Carrier语句中执行所有这些操作,但是您必须多次开始加入表或使用嵌套查询,这会非常混乱。然而,我选择我发布的解决方案的主要原因是因为我不太了解存储过程,因此我选择了最安全的解决方案。

如果你想要一个我的意思的例子,我会尝试提供一个。