2017-01-19 3 views
0

есть способ для суммарных значений в операторе умножения (*), а не в + Operator ?. для этого примера результат будет 140 (4 * 5 * 7 = 140)sql server - умножить значения на себя

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

Ничего встраивается. Вы, вероятно, нужно использовать курсор и сделать расчет самостоятельно. В противном случае сделайте это на клиенте. Но также обратите внимание на диапазон ints на SQL Server: вам не нужно много строк перед переполнением (сложное умножение даже небольших значений больше, чем одно быстро увеличивается). – 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 
Смежные вопросы