从两个数据范围中获取值并在连接中使用它?

Posted

技术标签:

【中文标题】从两个数据范围中获取值并在连接中使用它?【英文标题】:Get values from two data ranges and use this in a join? 【发布时间】:2014-02-17 07:31:58 【问题描述】:
SELECT sh.Nr_V, 
       tt.journalnumber, 
       sh.journalnumber_end, 
       sh.journalnumerstart 
 FROM transactiontable tt 
      LEFT JOIN salesheader sh
                ON tt.journalnumer between sh.journalnumerstart 
                   AND sh.journalnumber_end;

上面显示了我关于让所有Nr_V 加入我的transactiontable 的想法。 所以我想要journalnumberstartjournalnumber_end 之间的所有值,并使用它们加入我的transactiontable。这是不可能的,我无法加入工作!这个想法是从salesheader 看到Nr_V 加入我的transactiontable - 问题是在两列之间的范围内查找journalnumber

SalesHeader

Nr_V    JournalnumberStart JournalNumberEnd 

100       1001002             1003000
101       1003001             1004000

销售交易

Journalnumber  

1001004  
1001005
1003032

输出表

Nr_V    JournalNumber 

100     1001004 
100     1001005
101     1003032

所以我们想要在 SalesHeader 的范围内查找,以便得到 SalesTransaction 和 SalesHeader 之间的关系! 请记住,我的事务表中有 600 万行!我的 salesheader 表中有 50000 行。

【问题讨论】:

能否提供表格的骨架架构 【参考方案1】:

也许这样的事情会起作用:

SELECT sh.Nr_V, 
       tt.JournalNumber
FROM SalesTransaction tt 
LEFT JOIN SalesHeader sh ON 
  (tt.Journalnumber > sh.JournalnumberStart) 
  AND 
  (tt.Journalnumber < sh.JournalNumberEnd)
ORDER BY sh.Nr_V, tt.JournalNumber

示例SQL Fiddle

【讨论】:

对不起,它只给了我空值! @user3310846 真的吗?当我使用您的示例数据运行它时,它会给出所需的结果。您使用的是什么 DBMS?我尝试使用 MS SQL 2012。 我正在使用 MS SQL 2012 企业版。我仍然得到空值。 @user3310846 我不知道为什么它不适合你,我提供的示例小提琴建议它应该可以工作:\ 您好,我的数据是机密的,所以我只是尝试将上述内容放入也适用于我的 #temp 表中 - 我尝试更改数据类型并修剪列...仍然无法正常工作。我必须深入研究它...感谢您的帮助。【参考方案2】:

试试这个

SELECT sh.nr_v, 
       st.journalnumber 
FROM   salesheader sh 
       LEFT JOIN salestransaction st 
              ON st.journalnumber BETWEEN sh.journalnumberstart AND 
                                          sh.journalnumberend; 

fiddle

【讨论】:

小提琴就是我试过的例子(见顶部),但它不起作用。这是我最初的查询。 我在 MS SQL 2012 和它的工作中尝试过 sqlfiddle 您好,现在所有的 sql 语句都可以工作了!原因是某些行中有空格和一些 unicode 混乱。问题是在所有 6 个轧机行中都看到了这一点。但是感谢您的帮助和支持:-) 没有问题...:) 你可以投票或接受答案..;)

以上是关于从两个数据范围中获取值并在连接中使用它?的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它

C#,抛出错误试图从二维数组中获取值并在 TryParse 中使用它

如何从views.py 中获取值并在html 模板中使用它?

从日期字段中删除时间值并在从数据库中获取数据时更改格式

比较一个结构的两个值并在 UITableView swift 4.0 中获取额外的单元格

如何获取用户选择的按钮值并在 laravel 5.4 的控制器上使用它