2014-12-03 44 views
0

有一种将选择结果用于同一选择的方法?如何将选择结果用于相同的选择

这样的事情?

选择10作为数字,(数字/ 2)为一半FROM表格

Ty。

编辑//////////

好球员,这是实打实的。

SELECT * FROM (SELECT 
(SUM(
CASE 
     WHEN JVB0 = 1 AND JHIT0 = 0 AND JER0 = ' ' THEN '1' 
       WHEN JVB0 = 1 AND JHIT0 = 0 AND JER0 = '' THEN '1' 
       WHEN JVB0 = 1 AND JSF0 = 1 AND JSH0 = 1 THEN '1' 
     ELSE 0 
END)+ 
SUM(CASE 
       WHEN JDP0 = 1 OR JDP0 = 2 THEN '2' 
       WHEN JDP0 = 3 OR JDP0 = 4 THEN '3' 
       WHEN JOR0 = 1 THEN '1' 
       WHEN JACTB0 != '' THEN '1' 
     ELSE 0 
END)) as tercios_thrown, 

我必须把tercios_thrown的结果和一个使用tercios_thrown作为主数字的公式。因此,我认为,它可能是其他的方式来做到这一点没有这样做:

SELECT * FROM (SELECT 
(SUM(
CASE 
     WHEN JVB0 = 1 AND JHIT0 = 0 AND JER0 = ' ' THEN '1' 
       WHEN JVB0 = 1 AND JHIT0 = 0 AND JER0 = '' THEN '1' 
       WHEN JVB0 = 1 AND JSF0 = 1 AND JSH0 = 1 THEN '1' 
     ELSE 0 
END)+ 
SUM(CASE 
       WHEN JDP0 = 1 OR JDP0 = 2 THEN '2' 
       WHEN JDP0 = 3 OR JDP0 = 4 THEN '3' 
       WHEN JOR0 = 1 THEN '1' 
       WHEN JACTB0 != '' THEN '1' 
     ELSE 0 
END)) as tercios_thrown, 

((SUM(
CASE 
     WHEN JVB0 = 1 AND JHIT0 = 0 AND JER0 = ' ' THEN '1' 
       WHEN JVB0 = 1 AND JHIT0 = 0 AND JER0 = '' THEN '1' 
       WHEN JVB0 = 1 AND JSF0 = 1 AND JSH0 = 1 THEN '1' 
     ELSE 0 
END)+ 
SUM(CASE 
       WHEN JDP0 = 1 OR JDP0 = 2 THEN '2' 
       WHEN JDP0 = 3 OR JDP0 = 4 THEN '3' 
       WHEN JOR0 = 1 THEN '1' 
       WHEN JACTB0 != '' THEN '1' 
     ELSE 0 
END))/3) as the_other_value 
+1

在这种情况下执行'SELECT 10,10/2',那么实际上试图实现什么呢?随着对问题的更好理解,我们可能能够找到解决方案。 :) – 2014-12-03 20:34:01

+0

谢谢@DanJ我更新了这个问题 – jCaMaX 2014-12-03 21:36:19

回答

-1

这是不允许的指WHERE子句[或SELECT子句在列别名,因为列值可能尚未确定该条款何时执行。

所以不,你不能。