我真的需要知道,如果我能以某种方式计算列中的4个不同值并将其存储在4个不同的变量中。这些变量稍后将在该过程中使用。Oracle/SQL统计来自一列的不同值并将其存储在一个变量中
这是我的代码,但我不想使用SELECT语句4次,但最好是1次。 有什么办法解决它?
create or replace PROCEDURE FCountPrizes (dData IN DATE)
IS
szostki NUMBER;
piatki NUMBER;
czworki NUMBER;
trojki NUMBER;
BEGIN
SELECT COUNT(*) into szostki FROM Losy WHERE dData=DataLosowania AND FCountGuessed(dData, LiczbyMniejsze, LiczbyWieksze) = 6;
SELECT COUNT(*) into piatki FROM Losy WHERE dData=DataLosowania AND FCountGuessed(dData, LiczbyMniejsze, LiczbyWieksze) = 5;
SELECT COUNT(*) into czworki FROM Losy WHERE dData=DataLosowania AND FCountGuessed(dData, LiczbyMniejsze, LiczbyWieksze) = 4;
SELECT COUNT(*) into trojki FROM Losy WHERE dData=DataLosowania AND FCountGuessed(dData, LiczbyMniejsze, LiczbyWieksze) = 3;
END;
我没有给予好评的答案,但在技术上是有区别的。如果没有与'data'的匹配,那么这个查询得到的结果值为NULL,而原始值为0。 – 2014-11-24 17:26:25
@Gordon Linoff谢谢你,你是对的 – Multisync 2014-11-24 17:29:38
它的作品,这就是为什么我把它标记为最佳答案,但我仍然不确定它是否按我的意图工作。在我看来,FCountGuessed(dData,LiczbyMniejsze,LiczbyWieksze)在一个记录中执行了4次,这个功能非常复杂,这减慢了整个过程。我正在寻求一次执行它的选项并计算4种类型的结果。 – user3079680 2014-11-30 09:16:38