动态生成的插入或Select语句可以说我有一个表,以下数据SQL - 基于某种条件
Customer表:
Name amount date_created invoice_number
--------------------------------------------------
John 50 11April2012 12
Bob 150 15April2012 32
David 506 10May2012 52
Paul 80 12Aug2012 12
Mark 10 11Jan2012 52
汇总表:
Name amount
---------------------
Sally 250
Darren-32 150
我想要选择date_created位于current_quarter的start_date和end_date之间的所有行。如果date_created在当前季度内,我希望在执行插入语句之前将invoice_number追加到名称(请参见上面的摘要表中的示例)。
INSERT summary(name, amount)
SELECT name|| '-' || invoice_number, date_created, invoice_number
From Customer;
如何修改上面为使用“解码”功能或“案例”功能(或任何其他“IF语句”类型的函数)来检查DATE_CREATED的值,如果追加INVOICE_NUMBER date_created在当前季度内。
显然我需要知道当前季度的开始和结束日期,并且需要在比较之前将它们存储在某处。纯粹的SQL有可能吗? PL/SQL不是一个选项。
假设我们在第一季度(4至6月)最终的结果应该是:
Name amount
---------------------
Sally 250
Darren-32 150
John-12 50
Bob-32 150
David-52 506
Paul 80
Mark 10
我从Oracle 10G数据库中读取客户表和填充总结成“摘要”表驻留在SQL服务器数据库中的表。我插入SQL Server数据库的事实应该不重要。我正在从Oracle数据库读取数据,因此语法应该与Oracle兼容。
对不起,这是SQL语法,但它不应该很难将这些功能转换为Oracle :)你明白了。 – Mangist