sql - 如何在没有唯一键的情况下减去 Oracle SQL 中的记录
问题描述
我有三个表schedule_master
,我schedule_child
的sent_schedule
表结构如下
create table schedule_master(
mp_order varchar2(20),
ent_date date,
ent_time date
);
create table schedule_child(
mp_order VARCHAR2(20),
party_name varchar2(30),
req_date date,
purchaser_name varchar2(25),
order_no varchar2(20),
item_size varchar2(30),
item_quality varchar2(100),
ply varchar2(30),
uom varchar2(10),
po_qty number,
po_rate FLOAT
);
CREATE TABLE SCHEDULE_SENT(
ENT_DATE DATE,
ENT_TIME DATE,
ORDER_NO NUMBER,
ITEM_SIZE VARCHAR2(150),
PO_QTY NUMBER,
SENT_QTY NUMBER
);
前两个表是数据输入表,做得很好,第三个表是用于发布材料。当我在这个表中输入我的记录时,我想通过减去其他表的两个记录来得到结果。我正在使用这个语句作为我的结果但这给了我错误减法的结果。我的代码在下面
SELECT SC.ORDER_NO,SC.ITEM_SIZE || ' ' || SC.UOM || ' ' || SC.PLY || ' < ' || SC.ITEM_QUALITY || ' >
' as "ITEM SIZE",sc.po_qty,NVL(SS.SENT_QTY,0)SENT ,sc.po_qty-NVL(SS.SENT_QTY,0) AS "BALANCE" FROM
schedule_child SC
LEFT JOIN SCHEDULE_SENT SS ON sC.order_no=sS.order_no
WHERE sc.order_no=sc.order_no
ORDER BY sc.mp_order ASC;
上面的代码给了我错误的结果并尝试了很多次来解决这个结果如下
po_order item_size po_qty sent balance
21563 17.25X9.75X20 INCH 7 PLY CTN BROWN 127 0 127
21563 17.25X10.75X20 INCH 7 PLY CTN BROWN 508 0 508
21368 3.35X8.5 INCH 3 PLY STIFFNER BROWN 11643 180 11463
21368 16.5X11.75X16.5 INCH 7 PLY CTN BROWN 95 180 -85
21368 16.5X11.75X17.5 INCH 7 PLY CTN BROWN 182 180 2
21534 34.75X4.5X34.75X34.75 CM 5 PLY STIFFNER WHITE 3060 0 3060
21472 22.25X17X11 INCH 7 PLY CTN BROWN 226 0 226
21472 22.25X17X15 INCH 7 PLY CTN BROWN 598 0 598
正如我们可以看到上面的结果是错误的。我只是发布180 ctn
并且应该只平衡这个项目2
但是这个代码也给了我其他项目减去了。我想要下面的结果
po_order item_size po_qty sent balance
21563 17.25X9.75X20 INCH 7 PLY CTN BROWN 127 0 127
21563 17.25X10.75X20 INCH 7 PLY CTN BROWN 508 0 508
21368 3.35X8.5 INCH 3 PLY STIFFNER BROWN 11643 0 11643
21368 16.5X11.75X16.5 INCH 7 PLY CTN BROWN 95 0 95
21368 16.5X11.75X17.5 INCH 7 PLY CTN BROWN 182 180 2
21534 34.75X4.5X34.75X34.75 CM 5 PLY STIFFNER WHITE 3060 0 3060
21472 22.25X17X11 INCH 7 PLY CTN BROWN 226 0 226
21472 22.25X17X15 INCH 7 PLY CTN BROWN 598 0 598
解决方案
推荐阅读
- r - 用 R 中两个数据帧中的某些列填充列
- python - 创建python flask swagger的最简单方法是什么
- python - Python插入Json并使用pymongo更新mongodb
- deployment - 将 Nextjs 项目部署到 FTP
- c# - DbSet 不包含 SaveChanges 的定义
- intellij-idea - 类型参数“BreakBlock”不能直接实例化(Minecraft Spigot 插件)
- javascript - 数组 A [N] 包含自然数。求给定 K 的倍数的元素之和
- flutter - 将本地存储图像的路径传递给 social_share 插件
- python - 我的 Dice 系数在训练的早期和波动阶段“超调”的解释是什么
- python - Web Scraping Selenium and Beautiful soup - 无法导出到 csv 文件