SQL存储函数
回答
我假设你有一个交货表和产品表。
create or replace function prod_delivered_cnt (p_prod_id in number) as
v_res number;
begin
select count(*) into v_res
from delivery_table d
where d.prod_id = p_prod_id
and d.date < to_date('2011', 'yyyy');
return v_res;
end prod_delivered_cnt;
select p.prod_num, p.prod_name, prod_delivered_cnt(p.id) as cnt
from product_table p;
你可以帮我多一点,请创建一个函数来检索员工表的经理姓名。编写一个SQL select语句,使用该函数生成员工编号和姓名列表以及他们的经理姓名 – user911534
对不起,先生,这将是一个新问题,我可能还会回答这个问题,一旦这个问题被正确关闭/接受。另外,请注意所有建议提供这些问题的更多细节的意见。我的意思是你应该提供表结构和数据库供应商,如果你想得到一个包含工作代码的答案。 – bpgergo
谢谢,我会把这个问题作为新的。此外,我在这里很新,并没有太多的想法如何将ERD图像放在这里,你能帮我吗,这将是高度appriciated – user911534
大概你的问题是由学校或大学作业提示的。至少我希望是这样,因为使用函数来达到这个目的是不好的做法。由于SQL和PL/SQL引擎之间的不断切换,并且因为它逐行查询交付而不是使用set操作,所以它执行得很糟糕。
简单的纯SQL语句表现更好。我选择使用外连接,因为您可能希望包含去年没有任何活动的产品。
select p.product_id
, p.product_name
, count(d.delivery_id) as sales_this_year
from products p
left outer join deliveries d
on (p.product_id = d.product_id)
where d.dispatch_date >= add_months(sysdate, -12)
group by p.product_id, p.product_name
/
我已经“在去年”解释为过去的十二个月内,因此使用了ADD_MONTHS()函数。一个不同的解释将有一个这样的WHERE子句:
where d.dispatch_date between to_date('01-JAN-2010') and to_date('31-DEC-2010')
也就是上一个日历年;或者:
where d.dispatch_date >= trunc(sysdate, 'YYYY')
也就是这个日历年。
- 1. 存储的PL/SQL函数
- 2. MySQL存储函数:CONTAINS SQL或NO SQL?
- 3. 存储过程中的函数 - SQL 2008
- 4. 来自vb.net的SQL存储函数
- 5. 存储@property函数
- 6. MonetDB存储()函数
- 7. TSQL存储函数
- 8. mysql存储函数参数
- 9. 使用SQL存储函数给出了无效的SQL语句
- 10. 使用SQL函数将SQL Server存储过程转换为LINQ
- 11. 如何从sql select语句中调用存储过程或存储函数
- 12. C#SQL Server数据存储
- 13. SQL存储动态数据
- 14. 存储过程SQL计数
- 15. 如何使用存储函数安全地检索sql数据
- 16. 在GAE的数据存储中使用类似SQL的函数
- 17. 如何调用pl/sql存储过程(函数,返回数值)?
- 18. mySQL存储函数问题
- 19. 存储函数返回NULL
- 20. 存储JavaScript函数chrome
- 21. 存储函数的结果
- 22. 递归存储函数
- 23. PHP:存储由函数
- 24. 存储过程和函数
- 25. Oracle存储函数问题
- 26. 存储函数模板
- 27. 存储一个Lua函数?
- 28. LINQ to SQL存储库 - 缓存数据
- 29. 存储在SQL
- 30. 存储在SQL
SQL Server或Oracle?或两者??另外:请**展示我们**您的餐桌结构,以便我们知道我们正在处理的事情! –
如果可能的话oracle,感谢您的快速回复 – user911534
你能否让我知道我该如何在这里添加表结构,对不起,我在这里是相当新的 – user911534