sql - Oracle 11g 报表查询
问题描述
这是我的查询我只想从我的表 Pr_bom_line_washings 中获取 ITEM_CATEGORY_NAME 但这里没有来自该表的数据请检查我的代码并突出显示错误。
SELECT distinct itm.ITEM_CODE P_Code,
itm.ITEM_DESC P_Desc,
itm.UOM P_UOM,
NVL (ssoi.QTY, 0) qty,
bh.REMARKS,
( NVL (bl.QTY, 0)
* (SELECT NVL (last_grn_rate, 0)
FROM inv_items
WHERE item_id = bl.ITEM_ID))
amount,
NVL (bl.amount, 0) child_amount,
IIC.ITEM_CATEGORY_NAME Mat_Cat,
DECODE (bl.PURCHASING, 'Y', 'Yes', 'N', 'No') Purchase,
bl.ITEM_BY_SIZE,
FROM pr_bom_headers bh,
pr_bom_lines bl,
pr_bom_sub_lines bsl,
sm_Sale_order_items ssoi,
inv_items itm,
Pr_bom_line_washings pbw,
INV_ITEM_CATEGORIES iic
WHERE bh.BOM_HEADER_ID = bl.BOM_HEADER_ID
AND bl.BOM_LINE_ID = bsl.BOM_LINE_ID(+)
AND bh.ITEM_ID = itm.ITEM_ID
AND SSOI.SALE_ORDER_ID = BH.SALE_ORDER_ID
and BH.BOM_HEADER_ID = PBW.BOM_HEADER_ID
and BL.MATERIAL_CAT = IIC.ITEM_CATEGORY_ID(+)
and PBW.MATERIAL_CAT = IIC.ITEM_CATEGORY_ID(+)
and BH.BOM_HEADER_ID= 677
&qr
解决方案
评论太长了,可能有助于解决您的问题。您的查询从 IIC 中选择 ITEM_CATEGORY_NAME,而不是从 PBW 中选择,并且您说您希望从 PBW 中选择它。选择之前还有一个逗号,
,所以查询在语法上不正确,可能是发帖时的拼写错误。
仅显示对连接很重要的列,将旧式连接更改为 ansi 标准,这样您将清楚地看到连接是如何工作的:
select bh.bom_header_id,
bl.bom_header_id,
ssoi.sale_order_id,
itm.item_id,
bl.material_cat,
iic.item_category_id,
pbw.material_cat,
pbw.item_category_name
from pr_bom_headers bh
join pr_bom_lines bl on bl.bom_header_id = bh.bom_header_id
left join pr_bom_sub_lines bsl on bsl.bom_line_id = bl.bom_line_id
join sm_sale_order_items ssoi on ssoi.sale_order_id = bh.sale_order_id
join inv_items itm on itm.item_id = bh.item_id
left join inv_item_categories iic on iic.item_category_id = bl.material_cat
left join pr_bom_line_washings pbw on pbw.material_cat = iic.item_category_id
where bh.bom_header_id = 677
如果表中有 id = 677 的bh
行并且这些行没有出现在上面的查询中,这意味着它们在bl
orssoi
或中没有匹配项itm
。如果您希望他们出现将有问题的加入更改为左加入。
推荐阅读
- hyperledger-fabric - 在多主机环境 orderer1-org0 中启动排序服务时 | 恐慌:运行时错误:索引超出范围 [1],长度为 1
- django - ModuleNotFoundError:没有名为“上下文”的模块
- javascript - 尽管 node-gyp 重建说 OK,iconv.node 模块错误
- regex - 如何为共享相同根的项目列表编写正则表达式
- python - Pandas:根据其他列的值创建一个新列(按行)
- autodesk-forge - 将 Autodesk Forge Viewer 设置为 Infinity Pool 环境
- ios - 无法使用 WebRTC 渲染远程视频
- batch-file - Jenkins 作业因命令中的 for 循环而失败
- ios - 引用 CocoaPod 框架内的包失败
- mpi - openmpi -host 是如何工作的