从两个数据范围中获取值并在连接中使用它?
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
的想法。
所以我想要journalnumberstart
和journalnumber_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 模板中使用它?