2017-09-15 1 views
0

내 데이터베이스 테이블에는 세 개의 열, 즉 [Date, Client, Value][1]이 있습니다. SQL을 사용하여 행 데이터를 반복하는 것과는 다른 조건으로 두 개의 가상 열을 만드는 방법은 무엇입니까?

나는 거기에 세 개의 클라이언트와 새 테이블을 원하는 - "공예", "금속 Inc의", "화창한 날"및 두 개의 가상 총 열 - "가격"/ 8 월과 "가격"/ 2017

는 지금까지 시도 무엇 내가 무엇을 얻을 : Click to see

왜 "8 월"총 SUM 다음 행 내려 간다, 그러나 새로운 열에는 무엇입니까? 결국, 내 코드는 SELECT SUM(Value) AS 'For August'이라고 말합니다. 아이디어가 있으십니까?

답변

0

연합 (EU)이 경우에 어쩌면 당신은, 서브 쿼리를 사용

SELECT       
t1.Client, SUM(t1.Value) AS 'For 2017', (SELECT SUM(t2.Value)FROM Test GROUP 
BY t2.Client)AS 'For August' 
FROM Test AS t1 
JOIN Test AS t2 
    ON t1.Client = t2.Client 
WHERE 
t2.Date LIKE '%2017-08%'AND 
      (t2.CLient LIKE '%Technics%' OR t2.CLient LIKE 
      '%Metal Inc%' OR t2.CLient LIKE '%Sunny Day%') 
      AND 
(t1.CLient LIKE '%Technics%' 
    OR t1.CLient LIKE '%Metal Inc%' 
    OR t1.CLient LIKE '%Sunny Day%') 
GROUP BY t1.Client 
+0

대답 주셔서 대단히 감사합니다 이런 식으로 뭔가를 시도 할 수 있습니다, 당신을 대신 열의 행을 줄 것이다! 나는 당신이 나에게 제안한 것을 시도했지만, 이제 8 월의 세 클라이언트 모두에 대한 총 SUM에 대해 세 가지 다른 값 대신 8 월의 세 클라이언트 모두에 대해 총 SUM이있는 두 번째 열을 채우게됩니다. –

+0

해결되었습니다! 마침내 앉아서 확인하는 시간을 가졌습니다. 더 우아한 방법이 있어야합니다. 그러나 그것은 작동합니다 :) – DHLopez

+0

다시 한번 - 시간과 답변에 감사드립니다! 그러나 제발, 제게이 t1과 t2는 무엇인지 설명 해주십시오. 제 생각에는 제가 제 일을 게시하기 전에 여러 주제에서 그들을 보았 기 때문에, 어떻게 작동 하는지를 해결할 수 없었습니다. 내가 그들을 사용하려고했을 때, 나는 항상 오류가 발생했다 ... 그들은 일종의 기능인가? 그들은이 Sql 코드 전에 선언해야합니까? –

관련 문제