【问题标题】:SQL, Oracle, Updating from two tables using a where statementSQL,Oracle,使用 where 语句从两个表更新
【发布时间】:2014-08-15 14:48:03
【问题描述】:

我正在尝试从SALE_HEAD 表中更新statusPRODUCT 表必须读取 min_quantity,如果它介于 0 和 200 之间,则 statusSALE_HEAD 会从 'a' 更新为 'b'

表结构:


销售头

sale_num - pk 自动

销售日期

状态

staff_id - 发给员工

cus_id - 发给客户


销售线

product_code - 产品的 pk 和 fk

sale_num - pk 和 fk 到 sale_line

数量

实际价格


产品

product_code - pk 自动

说明

stock_count

补货级别

最低级别

list_price

产品手册

汇编程序

【问题讨论】:

  • 显示表结构

标签: sql oracle sql-update


【解决方案1】:

这样试试

 update sale_head
 set staus='b'
 From sale_head s Join (select sale_num,product_code,quantity from sales_line s
 inner join product p  on p.product_code=s.product_code 
 and p.min_level=s.product_code ) as t1 on t.sale_num=s.sale_num

【讨论】:

  • 我收到以下错误:从第 1 行开始的错误命令 - 更新 SALE_HEAD 设置状态 = 'B' 其中 SALE_HEAD.ID 在(从产品中选择 ID,其中 MINIMUM_LEVEL 介于 0 和 100 之间)错误在命令行:3 列:8 错误报告 - SQL 错误:ORA-00904:“SALE_HEAD”。“ID”:无效标识符 00904。00000 -“%s:无效标识符”*原因:*操作:
  • @user2797402 提供您的餐桌详情
  • @user2797402 最少数量啊?或 0 到 200 ah 之间的数量
  • 对不起 Min_Level (is min_quanity) = 0 到 100 之间
  • 对不起 Min_level = 最小数量
猜你喜欢
  • 1970-01-01
  • 2018-03-11
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多