2012-03-02 2 views
0

하나의 mysql 쿼리에서 다른 컬럼을 선택할 수 있기를 원한다. 나는 이것이 SQL로 쉽게 끝난다는 것을 알고있다. 그러나 당신은 이것을 어떻게 MySQL로 할 수 있는가?mysql은 다른 결과를 위해 서브 쿼리를 사용하여 컬럼을 선택한다.

SELECT 
MyfirstResult = (select sum(Counted * PartCost) FROM tblParts WHERE resultofcount < 0), 
MySecondresult = (select sum(Counted * PartCost) FROM tblParts WHERE resultofcount > 0) 

그 쿼리는 SQL에 대한 미세하지만 난 포트를 어떻게 MySQL의

내 결과와 동일한 기능 1000해야 |이 경우 2000. 2 개의 열이있는 단일 행

답변

0

구문을 약간 뒤집습니다. 열 별명은 AS aliasname을 통해 계산 된 표현식 또는 부속 선택 뒤에옵니다.

SELECT 
    (select sum(Counted * PartCost) FROM tblParts WHERE resultofcount < 0) AS MyFirstResult, 
    (select sum(Counted * PartCost) FROM tblParts WHERE resultofcount > 0) AS MySecondResult 
2

거의 동일;

SELECT 
    (select sum(Counted * PartCost) FROM tblParts WHERE resultofcount < 0) MyfirstResult, 
    (select sum(Counted * PartCost) FROM tblParts WHERE resultofcount > 0) MySecondresult; 

데모 here.

MySQL에서 약간 더 간단하게 할 수도 있습니다.

SELECT sum(Counted * PartCost*(resultofcount < 0)) Myfirstresult, 
     sum(Counted * PartCost*(resultofcount > 0)) MysecondResult 
FROM tblParts 

데모 here.

+0

이렇게하면 영리한 multiply-by-bool로 하위 쿼리가 제거됩니다. – cwa

관련 문제