【发布时间】:2017-06-05 20:49:24
【问题描述】:
我是一名 SQL 编码新手,需要一些帮助来处理我正在为 Oracle 的 GL 事务详细信息构建的 SQL 查询。
我已经能够编写我的查询,并且我能够成功地按照我喜欢的方式放置数据。我想在查询中添加一些内容,我认为这需要子查询,但我不确定如何编写。
SELECT CLIENT,
RESPONSIBILITY,
SERVICE_LINE,
STOB,
PROJECT,
JE_LINES_NET_ACT_AMOUNT AS "ACTUAL_AMOUNT",
EFFECTIVE_DATE,
PERIOD_NAME,
VENDOR_NAME,
DISTRIBUTION_SUPPLIER_NAME,
CASE WHEN JE_LINE_DESCRIPTION='Journal Import Created' THEN
AP_DISTRIBUTION_DESCRIPTION ELSE
JE_LINE_DESCRIPTION END AS DESCRIPTION,
CASE WHEN JE_HEADER_NAME LIKE '%Purchase%' THEN
INVOICE_NUMBER ELSE
JE_HEADER_NAME END AS DOCUMENT_NUMBER
FROM GL_Detail
WHERE RESPONSIBILITY BETWEEN '17500' AND '17511'
AND EFFECTIVE_DATE BETWEEN '2016/04/01' AND '2017/03/31'
AND JE_LINES_NET_ACT_AMOUNT <> 0
以上是我用于查询的代码示例。目前我有它为一系列责任中心(或成本中心)提取数据。出于报告目的,我们将这些责任中心汇总到不同的位置和部门级别。大多数用户希望通过这些汇总的责任编号提取数据;但是我们的 GL 交易明细表没有这些列。
我希望能够做什么:我希望能够定义一系列责任中心,并为它们分配我可以定义的汇总责任编号。当我在 WHERE 之后设置参数时,我希望能够将汇总的责任编号设置为参数。
在 select 之后嵌套 case 函数会解决这个问题吗?还是我需要使用其他功能?
任何帮助将不胜感激。
【问题讨论】:
标签: sql oracle parameters