2012-10-09 2 views
0

저는 이것이 분명하지 않은 것으로 확신하기 때문에 SQL 전문가에게 또 다른 쉬운 질문이 될 것이라는 것을 알고 있습니다. 이 모든 SQL Server 2000의 (상속 프로젝트!)SQL : 두 개의 subselect 열을 계산하는 동안 오류가 발생했습니다.

입니다 내가

SELECT (SELECT Price1 from Table1) AS 'PriceOne', 
(SELECT Price2 From Table2) AS 'PriceTwo', 
PriceTwo * PriceOne AS 'Total' 

같은 쿼리를하지만이 PriceOne 및 PriceTwo에 대한 인식 열의 오류가 발생합니다. 이런 식으로 열을 곱하는 것이 가능하다고 가정합니다.

+0

대부분 문법적으로 문제는 아니지만 table1의 가격과 table2의 가격을 비교하는 데 어떤 관계가 있습니까? – Mikeb

답변

1

우선, 하위 쿼리는 항상 한 행만 반환하도록해야합니다. 이제 열 이름에 대한 특정 문제에 대한, 당신은 그런 그들을 사용하는 다른 SELECT에 그 (것)들을 포장 할 필요가 : 동일한 SELECT 맥락에서 열 별칭을 사용할 수 없습니다

SELECT PriceOne, ProceTwo, PriceTwo * PriceOne AS 'Total' 
FROM ( SELECT (SELECT Price1 from Table1) AS 'PriceOne', 
       (SELECT Price2 From Table2) AS 'PriceTwo') AS A 
+0

이것은 완벽하고 효과적입니다. 나는 그것이 단순한 무엇인가 알고 있었다! 고맙습니다! –

1

. 외부 상황에

SELECT (SELECT Price1 from Table1) AS 'PriceOne', 
(SELECT Price2 From Table2) AS 'PriceTwo', 
(SELECT Price1 from Table1) * (SELECT Price2 From Table2) AS 'Total' 

또는 하위 쿼리로 쿼리를 지정하고 선택 : : 시도하지만

SELECT PriceOne, PriceTwo, PriceTwo * PriceOne AS Total 
FROM (SELECT (SELECT Price1 from Table1) AS 'PriceOne', 
     (SELECT Price2 From Table2) AS 'PriceTwo') x 

, Table1Table2 정말 각각 하나 개의 행이 궁금 , 또는 완전히 다른 무언가를 진정으로하려는 경우.

0

질문을 명확히 할 필요가 있다고 생각합니다. Table1과 Table2에는 둘 이상의 행이 있습니까? 그렇다면 어떤 종류의 조인 기준을 지정해야합니다. 나는 데카르트 조인을 원하지 않는다고 가정합니다.

궁금한 점이 있다면 왜 가격을 올리시겠습니까? 그건 말이되지 않습니다. 그리고 결과를 '합계'라고 부르십시오. 합계는 보통 곱하지 않는 것을 의미합니다.

+0

나는 보안 편집증에 빠지기 때문에 실제로 나는 실제로 작업하고있는 것과 관련이없는 다른 테이블 이름과 열을 사용하여 내 질문을 "모호하게"한다. 그래서, 나는이 게시물에서 "가격"에 대해 이야기하고 있을지 모르지만 나는 실제로 다른 일을하고 있습니다. 솔루션의 핵심은 여전히 ​​작동합니다 :-) –

관련 문제