![]() |
1
2
像这样的东西怎么样
让我知道你要找的结果集中的哪些字段,我可以想出一个更好的 |
![]() |
2
3
你读过装箱圣经吗? |
![]() |
3
1
|
![]() |
4
1
我在寻找类似的东西,我所能实现的就是将行扩展到事务中的项目计数数,并将它们分组到容器中。不过不是很优雅……而且,因为字符串聚合在SQL Server中仍然很麻烦(Oracle,我想你!)我得把最后一部分删掉。我的意思是把计数放在一排…… 我的解决方案如下:示例事务表:
创建一个虚拟序列表,其中包含从1到1000的数字(我假设单个事务中一个项目允许的最大数字为1000):
现在我们可以从事务表生成一个临时表,其中每个事务和项目都存在 “CNT” 子查询中的次数,然后使用除法给箱子编号,并按箱子编号分组:
结果是:
在Oracle中,最后一步将非常简单:
|
![]() |
5
0
这不是最漂亮的答案,但我正在使用类似的方法通过订单流程跟踪库存项目,这很容易理解,并且可能会导致您开发一种比我更好的方法。 我会创建一个名为“packeditem”的表或类似的表。列将是:
此表中的每个记录代表将要装运的1个物理单元。 假设有人用第12项的20向事务4添加了一行,我将向packeditem表添加20条记录,所有记录都带有事务ID、项目ID和一个空的框号。如果更新了一行,则需要从packeditem表中添加或删除记录,以便始终存在1:1相关性。 当时间到了,你可以简单地
并设置
您现在可以通过如下查询此表轻松获得所需的装箱单:
优点-易于理解,相当容易实现。 陷阱-如果表与事务中的行不同步,最终结果可能是错误的;此表将在其中获得许多记录,并且将是服务器的额外工作。需要索引每个ID字段以保持良好的性能。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 5 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 6 月前 |