2017-01-19 8 views
0

+演算子ではなく、乗算(*)演算子で集計値を得る方法があります。この例では、結果がされる140(4 * 5 * 7 = 140)SQL Server - それ自体で値を掛けよう

SELECT SUM(V) --*? 
FROM (SELECT 4 V 
      UNION ALL 
      SELECT 5 
      UNION ALL 
      SELECT 7 
     ) Q 
+0

何も組み込まれています。おそらく、カーソルを使用して行う必要があります自分で計算する。それ以外の場合はクライアント上で行います。しかし、SQL Server上のintの範囲も注意してください。あふれさせる前に多くの行を必要としません(1より大きい小さな値の複合乗算はすばやく大きくなります)。 – Richard

+0

これらの値はどこに保存されていますか? – McNets

答えて

1
 select * 
    into #a --*? 
    FROM (SELECT 4 V 
       UNION ALL 
       SELECT 5 
       UNION ALL 
       SELECT 7 
      ) Q 

select EXP(SUM(LOG(v))) As value from #a 

または

SELECT EXP(SUM(LOG(v))) 
FROM (SELECT 4 V 
      UNION ALL 
      SELECT 5 
      UNION ALL 
      SELECT 7 
     ) Q 
関連する問題