peoplesoft - 是否可以在 PS 查询表达式中使用 FROM?如果没有,是否有替代解决方案?
问题描述
我是 PS Query 和 SQL 的新手。我有一个有效的 SQL,但是我无法将其转换为 PS Query。
所以基本上,我想介绍我的产品及其每列数量的比较。
这是我的示例数据:
Product | Month | Amount
--------|-------|-------
Phone | 2 | 25
Laptop | 2 | 30
Phone | 1 | 20
Laptop | 1 | 40
下面是我很难翻译成 PS Query 的代码:
Select ….
SUM(CASE WHEN Product1 <> Product2 AND Product2 = Laptop THEN 30
/*On my second statement, when the product are equal, i need to get the amount on the previous month.*/
WHEN Product1 = Product3 AND Product3 = Phone
THEN (SELECT Amount
FROM FINAL_TBL B
WHERE B.PERIOD = A.PERIOD - 1)
ELSE 0
END) AS Amount
From FINAL_TBL FTBL A
Where <Conditions>
我的预期输出应该是
Product1 | Amount1 | Product2 | Amount2 | Product3 | Amount3
------------|-----------|-----------|-----------|-----------|--------
Phone | 25 | Laptop | 30 | Phone | 20
解决方案
您不能FROM
在 PSQUERY 表达式中添加 a。
您尝试翻译的查询可以重写为:
Select *
SUM(CASE WHEN Product1 <> Product2 AND Product2 = Laptop
THEN 30
WHEN Product1 = Product3 AND Product3 = Phone
THEN B.Amount
ELSE 0
END) AS Amount
FROM FINAL_TBL A, FINAL_TBL B
WHERE B.PERIOD = A.PERIOD - 1
AND <Conditions>
但是这个或原始查询都不会导致您期望的输出。您正在寻找的是PIVOT子句。
推荐阅读
- android - android防止后台应用程序在前台启动活动
- math - 坐标轴比例不同时绘制垂线
- node.js - 使用 express 和 graphql 进行身份验证
- python - 使用 python mysqldb 插入 '0' 和 '1' 作为位
- microservices - 仅从资源中获取列的 URL 命名约定
- excel - 如何修复此代码中超出范围的下标
- ios - 创建带有渐变边框和渐变文本的清除按钮
- java - 在 Java 8 中有一张 Set 地图,我如何将所有值放在一个集合中?
- android - Android 环境中未调用 aboutToQuit 信号?
- bdd - 如何让黄瓜为每个功能而不是每个场景实例化自定义世界?