2016-06-30 16 views
0

Ich fing an, in BI zu arbeiten, und ich bekam eine Denkaufgabe, da ich von C# und nicht von SQL/cognus kam. Ich bekomme eine Nummer. Es kann zwischen 0 und einer sehr großen Zahl liegen. Wenn ich es bekomme und es unter 1.000 ist, ist alles gut. Aber wenn es größer als oder gleich 1.000 ist, sollte ich stattdessen 1.000 verwenden.Einstellung eines Maximalwerts für eine Variable. Cognos

Ich bin nicht berechtigt, Bedingungen zu verwenden, ich brauche es, um reine Mathematik zu sein, oder wenn ich nicht kann, dann sollte ich effiziente Methoden verwenden.

Ich dachte, es wäre einfach und verwenden Sie einfach Min(), aber das funktioniert anscheinend in cognus und SQL.

+1

In Oracle SQL: ['LEAST (Ihre_number, 1000)'] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions087.htm#SQLRF00657) – MT0

+0

Klingt wie du wirst Du musst deinen Kalkül/Theorie entstauben, um diesen zu lösen. Sind Sie sicher, dass SQL im Gegensatz zur Entwicklung eines Algorithmus verwendet wird? –

+0

Welche Version von SQL verwenden Sie? Darf SQL Pass-Through-Funktionen verwendet werden? – Johnsonium

Antwort

0

Über die LEAST() Funktion:

Oracle-Setup:

CREATE TABLE data (value) AS 
SELECT 1 FROM DUAL UNION ALL 
SELECT 999 FROM DUAL UNION ALL 
SELECT 1000 FROM DUAL UNION ALL 
SELECT 1001 FROM DUAL; 

Abfrage:

SELECT value, LEAST(value, 1000) AS output FROM data 

Output:

VALUE OUTPUT 
----- ------ 
    1  1 
    999 999 
1000 1000 
1001 1000 
Verwandte Themen