在SQL中乘以多个列

时间:2012-04-05 19:02:54

标签: sql sas

  

可能重复:
  SAS proc SQL and arrays

我正在尝试使用SQL在SAS中多次计算多列的比率。例如,我想:

(((start*start_period)+(middle*middle_period)+(end*end_period))/number_days) AS azmonth;

问题在于start_periodmiddle_periodend_periodnumber_days是常数而startmiddle和{{{ 1}}是一组约7组,需要以相同的方式相乘。除了为每个人输入外,还有其他方法吗?

  1. Start_per Mid_per End_per Start1 .... Start20 Mid1 ... Mid20 End1 ... End20
  2. 0.3 -------------- 6 ---------- 1 ------ 10 ------- 15-- ---- 26 ------- ----- 45 61 ------ 08
  3. 我知道我可以为Start,Mid和Ends中的每一个做一个单独的等式但是我希望有一种方法可以做到这一点,而无需单独复制/粘贴它们吗?

1 个答案:

答案 0 :(得分:0)

在运行PROC SQL之前编写一个宏来为您生成重复代码,然后在proc SQL中的适当位置调用宏。如果您在数据步骤中执行此操作,则替代选项是为开始,中间和结束变量定义3个数组,然后使用do循环重复计算20次。

here

This source声称PROC SQL本身没有循环功能 - 我不确定这是否属实。如果是,宏可能是唯一的解决方案。