如何解决如何编写一个游标在表中并插入到另一个表中的SQL脚本
我是SQL Server的新手,我具有以下包含超过一千行的表结构。 但是出于示例目的,这就是它的样子
表导入
if "Subtring" in string:
string.replace("Substring","")
else:
list.append(string)
接着是另一个名为Items的表
+------+---------+------------+------------+------------+------------+------------+
| Name | Code | SocksTotal | GlovesTotal| JeansTotal | ShirtsTotal| shoesTotal |
+------+---------+------------+------------+------------+------------+------------+
| OT | 45612 | 2 | 1 | 0 | 1 | 4 |
| OT | 1234 | 0 | 1 | 0 | 0 | 0 |
| US | 45896| 0 | 0 | 0 | 0 | 0 |
+------+---------+------------+------------+------------+------------+------------+
从上面的表中我需要编写一个脚本,该脚本将被插入到另一个名为ImportItems_Summary的表中。 预期的输出是
+------+---------+
| ID | Item |
+------+---------+
| 1 | socks |
| 2 | Gloves|
| 3 | Jeans |
| 4 | Shirts|
| 5 | shoes |
+------+---------+
在这里您可以看到,代码45612现在在ImportItems_summary表中有4个条目,其中项目不等于0,并且Items_id链接到Items表ID列。
我如何实现上述输出?..我看了看光标可能会有所帮助,但是我不确定如何实现此目的
解决方法
一种方法使用cross apply
将未规范化表的列取消透视成行,然后将join
带到items表,最后插入目标表:
insert into ImportItems_Summary (code,items_id,import_total)
select im.code,it.items_id,x.import_total
from import im
cross apply (values
('socks',sockstotal),('gloves',glovestotal),('jeans',jeanstotal),('shirts',shirtstotal),('shoes',shoestotal)
) x(item,import_total)
inner join items it on it.item = x.item
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。