2014-04-18 3 views
0
SELECT p1.*, 
     (p1.opening_balance + p1.retained_now - p1.released_now - 
     p1.clawbacked_amount - p1.arrears_amount) AS closing_balance 
FROM (SELECT p.channel_org_id, 
       t.channel_name, 
       p.aggregation_id, 
       ((SELECT SUM(amount) 
        FROM t_agent_retention_balance 
       WHERE agent_id IN 
         (SELECT agent_id 
          FROM t_agent 
         WHERE channel_org_id = p.channel_org_id) 
        AND account_type = 5) - 
       (SELECT SUM(commision) 
        FROM t_product_commision 
       WHERE aggregation_id < p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1104) + 
       (SELECT SUM(commision) 
        FROM t_product_commision 
       WHERE aggregation_id < p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1110) + 
       (SELECT SUM(commision) 
        FROM t_product_commision 
       WHERE aggregation_id < p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1122) + 
       (SELECT SUM(commision) 
        FROM t_product_commision 
       WHERE aggregation_id < p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1123) 
      ) AS opening_balance, 
       (SELECT SUM(commision) 
       FROM t_product_commision 
       WHERE aggregation_id = p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1104) AS retained_now, 
       (SELECT SUM(commision) 
       FROM t_product_commision 
       WHERE aggregation_id = p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1110) AS released_now, 
       (SELECT SUM(commision) 
       FROM t_product_commision 
       WHERE aggregation_id = p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1122) AS clawbacked_amount, 
       (SELECT SUM(commision) 
       FROM t_product_commision 
       WHERE aggregation_id = p.aggregation_id 
        AND channel_org_id = p.channel_org_id 
        AND commision_type_id = 1123) AS arrears_amount 
     FROM t_product_commision p, t_channel_org t, t_commision_type ct 
     WHERE t.channel_id = p.channel_org_id 
      AND p.commision_type_id = ct.commision_type_id 
      AND p.aggregation_id =? 
      AND p.comm_status <> 1 
      AND p.channel_org_id = ? 
     GROUP BY p.channel_org_id, t.channel_name, p.aggregation_id) p1 

값을 전달 하시겠습니까? p1 임시 테이블의 매개 변수는 어떻게 이것을 달성 할 수 있습니까 ? 장소 내가 p1.x를 전달하고 싶습니다. 그리고 p1.x와 같은 값을 전달하려고 시도하면 p1.x 후where p1.x=12 and p1.y=23입니다. p1.x가 유효하지 않음을 나타냅니다.임시 테이블에 값을 전달하는 방법

+0

도움이 되셨습니까? http://stackoverflow.com/questions/2236201/how-can-i-pass-parameter-to-sql-script – Jester

+1

질문이 명확하지 않습니다. '안에? p1.x '를 전달하고자하는 장소,'? '표시 중 하나를'p1'의 열 중 하나로 바꾸는 것을 의미합니까? 'p.aggregation_id = p1.released_now'? (필자는이 예제가 반드시 필요한 것은 아닌지 잘 모르겠다.) 'p1 이후에 p1.x = 12와 같은 값을 전달하려고했다'는 말은 'p1.aggregation_id = 12'와 같은 조건을 추가하려고했다는 뜻인가요? '질의의 끝까지? JDBC를 사용하여'stmt.setString (1, "p1.x")'와 같은 것을 작성하려고합니까? –

+0

예. p1.aggregation_id = 12 ....와 같은 조건을 추가하려고했는데 오류 @luke를 보냈습니다 –

답변

0

나는 당신이 다른 것 select와 함께 실행할 값을 입력하십시오. 당신이 당신의 TABLENAME로 한 다음 대한 값을 제공하게됩니다 당신의 필드 이름으로 대체하여이 쿼리를 실행하면

select * 
from <yourtable> 
where <fieldname> = '&1'; 

이 값은 당신에게 다른 매번 될 수 있습니다 이 당신이 그것을하는 방법이다 쿼리를 반복하십시오.

관련 문제