怎样结合这两句SQL?

Eric_1999 2006-07-24 04:14:58
请问各位大虾,如果有个表可以计算出n个月的生产总数,如何能只用1个SQL同时显示3个月和12个月的。

如下:
3个月的

SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-3)

12个月的
SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-12)

怎样用一句SQL实现?
...全文
189 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eric_1999 2006-09-06
  • 打赏
  • 举报
回复
收工
Eric_1999 2006-07-27
  • 打赏
  • 举报
回复
谢了!这样不行。我自己解决了。
/* Formatted on 2006/07/26 14:02 (Formatter Plus v4.8.0) */
SELECT y.subsidary, y.ccy, y.supplier_name, x.hkd_total_amt hkd_total_amt_3,
y.hkd_total_amt hkd_total_amt_12
FROM (SELECT sgp.subsidary, 'HKD' ccy, sgp.supplier_name supplier_name,
ROUND
(SUM ( apps.suga_f_ccy_rate (sgp.po_ccy,
'HKD',
'Corporate',
TO_DATE ('2006-01-01',
'YYYY-MM-DD'
)
)
* sgp.po_unit_price
* sgp.order_quantity
),
4
) hkd_total_amt
FROM apps.suga_group_purchase_details sgp
WHERE sgp.order_date > ADD_MONTHS (TRUNC (SYSDATE), -3)
GROUP BY sgp.subsidary, sgp.supplier_name
ORDER BY 1, 4 DESC) x,
(SELECT sgp.subsidary, 'HKD' ccy, sgp.supplier_name supplier_name,
ROUND
(SUM ( apps.suga_f_ccy_rate (sgp.po_ccy,
'HKD',
'Corporate',
TO_DATE ('2006-01-01',
'YYYY-MM-DD'
)
)
* sgp.po_unit_price
* sgp.order_quantity
),
4
) hkd_total_amt
FROM apps.suga_group_purchase_details sgp
WHERE sgp.order_date > ADD_MONTHS (TRUNC (SYSDATE), -12)
GROUP BY sgp.subsidary, sgp.supplier_name
ORDER BY 1, 4 DESC) y
WHERE (x.subsidary(+) = y.subsidary AND x.supplier_name(+) = y.supplier_name)

结贴!
struggle813 2006-07-26
  • 打赏
  • 举报
回复
select a.HKD_TOTAL_AMT "3月",b.HKD_TOTAL_AMT "12月" from
(SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-3) ) a,
(
SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-12)) b
struggle813 2006-07-26
  • 打赏
  • 举报
回复
select a.HKD_TOTAL_AMT,b.HKD_TOTAL_AMT from
(SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-3) ) a,
(
SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-12)) b
Eric_1999 2006-07-24
  • 打赏
  • 举报
回复
这个不行啊,连接在表下面,不是在表右边加一列的阿
Eric_1999 2006-07-24
  • 打赏
  • 举报
回复
只能这样吗?没有其他方法吗?
Eric_1999 2006-07-24
  • 打赏
  • 举报
回复
可以给个temple吗?
guanshiyu123 2006-07-24
  • 打赏
  • 举报
回复
SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-3)

union all

SELECT
ROUND(SUM(Suga_F_Ccy_Rate(SGP.PO_CCY, 'HKD','Corporate', TO_DATE('2006-01-01','YYYY-MM-DD'))*SGP.PO_UNIT_PRICE*SGP.ORDER_QUANTITY),4) HKD_TOTAL_AMT,
FROM SUGA_GROUP_PURCHASE_DETAILS SGP
WHERE SGP.ORDER_DATE > ADD_MONTHS( TRUNC(SYSDATE),-12)
guanshiyu123 2006-07-24
  • 打赏
  • 举报
回复
union all

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧