从一个表中选择并插入到另外两个表中

2023-12-14

我是 SQL 初学者,对 Transact-SQL 不太了解。

我意识到这是一个新手问题,但我正在寻找一个简单的解决方案。

我有一个包含一些列的表(locationCode, CustomerCode).

主表

    ItemCode    locationCode    CustomerCode
    I001        001001          C001 
    I002        001002          C001    
    I003        001001          C002
    I004        002001          C002

我想从该表中选择数据并插入到其他两个表中。

第一桌

firstTblId(autoIncrement)  warehouseCode  CustomerCode
       1                       001           C001   
       2                       001           C002
       3                       002           C002

warehouseCode是前三个字符的组合locationCode

第一个表中的数据按前三个字符分组locationCode和客户代码

第二张桌子

secondTblId
(autoIncrement)  ItemCode  locationCode  CustomerCode   firstTblId(FK)
      1            I001       001001        C001            1
      2            I002       001002        C001            1
      3            I003       001001        C002            2
      4            I004       002001        C002            3

那么,如何通过使用 SQL 选择主表的行来插入第一个表和第二个表?

感谢您的所有回复。


我想你想要类似下面的东西。临时表 @Output 将捕获第一个表的插入标识,然后在插入第二个表时可以使用这些标识。

DECLARE @Output TABLE 
(       FirstTableID    INT NOT NULL PRIMARY KEY, 
        WarehouseCode   VARCHAR(3), 
        CustomerCode    VARCHAR(4)
)
INSERT INTO FirstTable (WarehouseCode, CustomerCode)
OUTPUT inserted.FirstTblID, inserted.WarehouseCode, inserted.CustomerCode INTO @Output
SELECT  DISTINCT LEFT(LocationCode, 3) [WarehouseCode], CustomerCode
FROM    [PrimaryTable]

INSERT INTO SecondTable (ItemCode, LocationCode, CustomerCode, FirstTblID)
SELECT  p.ItemCode,
        p.LocationCode,
        p.CustomerCode, 
        o.FirstTableID
FROM    [PrimaryTable] p
        INNER JOIN @Output o
            ON LEFT(LocationCode, 3) = WarehouseCode
            AND p.CustomerCode = o.CustomerCode
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从一个表中选择并插入到另外两个表中 的相关文章

  • 如何通过循环变量在 dbt 中多次运行 SQL 模型?

    我有一个 dbt 模型 测试模型 接受地理变量 zip state region 在配置中 我想通过循环变量来运行模型三次 每次使用不同的变量运行它 问题是 我有一个如下所示的宏 它将变量附加到输出表名称的末尾 即运行测试模型 with z
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • SSRS将参数传递给子报表

    我有 2 个表 它们都有 countyID 列 我有一个主报告 它根据如下查询显示报告 SELECT countyID name address state FROM TableA 我在 TableA 上设置了一个参数 您可以在其中选择名称
  • 累计非重复计数

    我正在查询每天获取 uid 的累计不同计数 示例 假设有 2 个 uid 100 200 出现在日期 2016 11 01 并且它们也在第二天出现 新的 uid 300 100 200 300 出现在 2016 11 02 此时我希望商店累
  • 案例陈述以确定我是否应该结合

    我目前想做某种条件联合 给出以下示例 SELECT age name FROM users UNION SELECT 25 AS age Betty AS name 假设我只想在 用户 计数 gt 2 时合并第二个语句 否则不合并两者 总之
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B
  • 通过将行旋转为动态数量的列来在 MySQL 中创建摘要视图

    我在 MySQL 中有一个表 其中包含以下字段 id company name year state 同一客户和年份有多行 以下是数据示例 id company name year state 1 companyA 2008 1 2 com
  • ORA-01749: 您不能向自己授予/撤销权限

    我正在运行以下查询RATOR MONITORING授予引用权限的架构RATOR MONITORING CONFIGURATION SMSC GATEWAY表到RATOR MONITORING schema GRANT REFERENCES
  • MySQL 中的 UDF 性能

    我注意到 当查询在 SELECT 或 WHERE 子句中调用 UDF 时 MySQL 查询执行时间的性能会呈指数级下降 有问题的 UDF 查询本地表以返回标量值 因此它们不仅执行算术表达式 而且充当相关子查询 我通过简单地删除 UDF 并使
  • 使用 xmlagg 时出现子查询错误和太多值

    我在连接许多大型表中的所有数据时遇到问题 我昨天对此提出了问题 但不幸的是 listagg 似乎不是一个好的选择 链接子查询返回多行 https stackoverflow com questions 54651144 subquery r
  • 使用 Powershell SQL 将数据提取到 Excel

    我想使用 powershell 将数据从 SQL Server 提取到新的 excel 文件 对于小型数据集 我的代码可以工作 但某些表的行数超过 100 000 行 这将需要很长时间 我不在 SQl 服务器中使用该实用程序的原因是因为我想
  • 当我输入 dateadd 或 datediff 代码时,我总是收到此错误“ORA-00904“DATEADD”无效标识符。”

    我有一个大学项目 并且有一个包含入院和出院日期属性的患者表 我需要删除超过 7 年的记录 我使用了以下代码 delete from patient where dis date gt datedadd yy 7 getdate 我收到错误
  • 将此 MySQL 查询转换为 PyGreSQL

    我正在开发一个 Ruby 应用程序 它使用 mysql 函数 XOR 和 BIT COUNT 不过 我现在需要在运行 PyGreSQL 的 Heroku 上运行该应用程序 我找不到任何可以帮助我的 PyGreSQL 文档 那么任何人都可以翻
  • 在 SSIS 中使用合并任务的指南

    我有一个包含三个字段的表 其中一个是身份字段 我需要从具有其他两个字段的源中添加一些新记录 我正在使用SSIS 我认为我应该使用合并工具 因为其中一个源不在本地数据库中 但是 我对合并工具和正确的过程感到困惑 我有一个源 一个 Oracle
  • 如何在postgres中获取数组大小大于1的数组

    我有一个看起来像这样的表 val fkey num 1 1 1 1 2 1 1 3 1 2 3 1 我想要做的是返回一组行 其中值按 val 分组 并带有一个 fkey 数组 但仅限于 fkey 数组大于 1 的情况 因此 在上面的示例中
  • Netezza SQL 将 VARCHAR 转换为二进制字符串

    我有一个位图存储为VARCHAR在内特扎 需要转换一下VARCHAR转换为 Netezza 中的二进制字符串 输入 Netezza col 值 VARCHAR 0xFFFFFFFFFFFFFFFF 期望的输出 VARCHAR gt 1111
  • 将 5 gig 文件导入表时出错

    我正在尝试批量插入表 use SalesDWH go BULK INSERT dbo npi FROM S tmp npi csv WITH FIELDTERMINATOR ROWTERMINATOR n lastrow 200 first
  • PLSQL 中的时区转换

    我需要将系统日期和时间转换为特定时区 例如东部时间 我无法假设我当前的时区 如何在plsql中转换它 请帮我 假设你有一个TIMESTAMP WITH TIME ZONE 例如systimestamp 您可以使用AT TIME ZONE句法
  • 为什么MERGE语句的目标表不允许启用规则?

    我们有一个使用以下 SQL 更新数据库的过程 IF NOT EXISTS SELECT FROM Target Table WHERE Target Table ID BEGIN INSERT END ELSE BEGIN UPDATE E
  • MSSQL 选择前 10 名获胜分数,包括并列以及每个类别中至少一个

    我使用以下语句获得了一些帮助 找到了前 10 名分数 包括并列条目 select T EntryID T CategoryID T Score from select EntryID CategoryID Score dense rank

随机推荐

  • MongoDB:管理员无权执行命令

    当我使用时 我的 mongo shell 给了我这个错误show dbs命令 没有管理员权限执行命令 我尝试使用创建用户 db createUser user siteUserAdmin pwd password roles role us
  • 从环境中获取 xts 对象

    我已将 xts 对象存储在环境中 当这些对象存储在环境中时 我可以对它们进行子集化 即 就地 对它们进行操作吗 我可以通过引用这些对象来提取它们吗colname 下面是我要表达的内容的示例 environment in which to s
  • JavaScript 中的 numpy.random.choice?

    Numpy random choice 是一个很好的简单函数 它允许您根据某种概率分布对整数数组进行采样 gt gt gt np random choice 5 3 p 0 1 0 0 3 0 6 0 array 3 3 0 javascr
  • 如何在Spring Security中使用具有authentication-success-handler-ref等效功能的自定义过滤器

    我想将一些带有登录详细信息的参数传递给 spring security 例如某些项目 ID 然后我想根据用户类型重定向到页面 为此我正在使用自定义过滤器发送附加参数 我正在使用重定向身份验证成功处理程序参考 我的问题是 我在使用时遇到位置冲
  • 参数和局部变量有什么区别?

    为看起来一定像的事情道歉very愚蠢的问题 我目前正在通过 codecadamy 工作 这让我很失望 var greeting function name name sausage console log name greeting nam
  • 模式验证器对于 IP 地址正则表达式无效

    我正在使用以下正则表达式来验证IP 地址模式 b 25 0 5 2 0 4 0 9 01 0 9 0 9 3 25 0 5 2 0 4 0 9 01 0 9 0 9 b 我也在a中检查过正则表达式测试器而且效果很好 但是 当我在模式验证器中
  • 在 yii2 中获取日期时间时时间错误

    当我在 yii2 项目中获取日期时间时遇到问题 当我得到日期时间时 日期是正确的 但时间是错误的 我执行我的代码 结果是 2016 05 02 12 30 28 而我笔记本电脑上的时间是 19 30 有什么问题 我利用在印度尼西亚的时间 这
  • Java程序拥有16GB虚拟内存并且不断增长:这是一个问题吗?

    在 Mac OSX 5 8 上 我有一个 Java 程序 它以 100 CPU 运行很长一段时间 几天或更长时间 它是一个分析并发程序的模型检查器 所以这或多或少是预期的 然而 它的虚拟内存大小 如 OSX 的活动监视器中所示 在一天左右后
  • 使用 WCF 中的架构进行消息验证

    我想要的是用很少的属性 例如最小 最大 字符串长度等 来装饰我的数据契约 并获取为我的 SOAP 非 net 客户端生成的 XML 模式 经过在互联网上的一些研究 我发现了以下文章 http wcfsecurity codeplex com
  • 如何将nodeJS项目托管到firebase?

    我正在为该项目使用 Node Express 和更多其他依赖项 我想知道如何在 firebase 上托管这个项目 我的项目将有控制器 视图和任何其他文件夹以使项目成为可能 它已经有像 pug handlebars 这样的视图引擎 在线教程仅
  • C++ 中具有向量属性的 MPI 发送结构

    我想发送一个具有向量属性的结构 typedef struct int id vector
  • ggplot2 代码运行并更新绘图,但实际上没有显示数据

    我正在尝试使用生成图表ggplot2虽然我能够生成我想要使用的图表plot 当我运行下面的 ggplot 代码时 它会显示正确的轴 但没有数据或比例 数据看起来像这样 data lt data frame area c alpha alph
  • 由于 PreviewMouseLeftButtonDown,数据网格内的按钮未被触发

    我正在开发 WPF 应用程序 根据要求 我想在数据网格中显示项目列表 每行还有一个 删除 按钮 使用这个按钮我们可以删除相应的项目 我还想要网格的拖放功能 即用户可以向上 向下移动行 我在用 PreviewMouseLeftButtonDo
  • Codeigniter,空白页,没有错误[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 public function newreg username this gt inpu
  • headless eclipse 的 config.ini 设置

    From 这个帖子 当我尝试执行无头 Eclipse 代码时出现此错误消息 java lang RuntimeException Could not find framework at org eclipse equinox launche
  • 是否有一种机制可以禁用插入表?

    我有一个表 它的存在纯粹是为了充当某些逻辑的数组 该表应该只有一行 否则我的逻辑将失败 是否有任何 DDL 命令可以禁用插入表 截至目前 我已经插入了逻辑所需的 一行 数据 现在计划创建一个插入后触发器来删除新输入的记录 二 但是我注意到有
  • 使用 Pyinstaller 编译 Gekko

    我想知道是否可能 或者是否有人有任何经验 用 pyinstaller 将 gekko 优化包编译成 exe 作为测试用例 我使用来自 gekko 优化网站的 HS 71 Benchmark 用例 https gekko readthedoc
  • 使用 ncdf4::ncvar_get 时如何指定维度顺序?

    继上一个问题之后 从 netCDF 更快地读取时间序列 我重新排列了我的 netCDF 文件以提供快速的时间序列读取 github上的脚本最终会被清理 简而言之 为了使阅读速度更快 我重新排列了尺寸lat lon time to time
  • jquery remove 从另一个元素中删除

    根据here jquery删除函数应该像这样工作 div remove selector 我正在尝试在这个例子中 HTML div class wrapper p class unwanted This should be removed
  • 从一个表中选择并插入到另外两个表中

    我是 SQL 初学者 对 Transact SQL 不太了解 我意识到这是一个新手问题 但我正在寻找一个简单的解决方案 我有一个包含一些列的表 locationCode CustomerCode 主表 ItemCode locationCo