1

내가 가진 다음 표 :문자열 집계 다른 테이블과 조인 C 럼

weighment_tran 
    village_cd 
    farmer_id 
    registered_farmer_id 
    plot_no 
    out_date 
    net_wt 

village_dir 
    village_cd 
    village_name 
    taluka_cd 
    district_cd 

taluka_dir 
    taluka_cd 
    taluka_name 

district_dir 
    district_cd 
    district_name 

farmer_dir 
    farmer_id 
    first_name 
    middle_name 

agreement_tran 
    farmer_id 
    registered_farmer_id 
    payment_farmer_id 
    plot_no 
    main_sy_no 
    payment_bank_cd 
    payment_account_no 

bank_dir 
    bank_cd 
    bank_name 
    bank_branch 
주로 나는 두 개의 트랜잭션 테이블 즉 agreement_tran가 (계약이 저장되는) 한

weighment_tran (제품의 weighment는 agreement_tran에 출석 만 저장) 및 다른 디렉토리는 bank_cd과 같은 코드의 실제 이름에 대한 조회가 실제 bank_namebank_dir을 찾는 디렉토리입니다. farmer_id, registered_farmer_id, payment_farmer_id은 같은 열 값입니다. 내가 필요한 것은 out_date 범위를 다음과 같이이다 :

Sl.No farmer_name Sy_nos village taluka district payment_farmer_id payment_account_no bank_name bank_branch sum(net_wt) 

모든 plot_nosy_no을 가지고, 나는 모든 plot_no에 해당 net_wtsum(net_wt)을 선택하고 모든 sy_no들을 연결해야합니다.

는 뭔가 같은 -

select row_number() over (order by a.payment_farmer_id), 
     a.payment_farmer_id, 
(select f.first_name ||' '|| f.middle_name as name 
     from farmer_dir f 
     where a.payment_farmer_id=f.farmer_id), 
(select wm_concat(main_sy_no) from agreement_tran a 
     where a.plot_no=w.plot_no), 
(select sum(net_wt) 
     from weighment_tran w 
     where (w.plot_no = a.plot_no) 
     and (w.season_cd = 9) and trunc(w.out_date) between 
     to_date('22-12-2013','dd-mm-yyyy') and to_date('23-12-2013','dd-mm-yyyy') 
     group by a.payment_farmer_id) 
from agreement_tran a 

을 시도했지만 내가 원하는 것을 얻을하지 않았다.

+0

@Rachcha 지금까지 시도한 내용을 입력했습니다. 제발 봐 – Mallesh

답변

0
SELECT Sum(WEIGHMENT_TRAN.NET_WT), 
AGREEMENT_TRAN.PAYMENT_FARMER_ID, 
wm_concat(Distinct (agreement_tran.main_sy_no)) as Sy_no, 
wm_concat(Distinct (village_dir.village_name)) as Village, 
farmer_dir.first_name || ' ' || farmer_dir.middle_name as Farmer_name,  taluka_dir.taluka_name, district_dir.district_name, bank_dir.bank_name, bank_dir.bank_branch, agreement_tran.payment_account_no, weighment_tran.registered_farmer_id 
FROM AGRI.AGREEMENT_TRAN AGREEMENT_TRAN, 
AGRI.village_dir village_dir, 
AGRI.WEIGHMENT_TRAN WEIGHMENT_TRAN, 
agri.farmer_dir farmer_dir, agri.taluka_dir taluka_dir, 
agri.district_dir district_dir, agri.bank_dir bank_dir 
WHERE AGREEMENT_TRAN.PLOT_NO = WEIGHMENT_TRAN.PLOT_NO AND 
((AGREEMENT_TRAN.SEASON_CD=9) AND (WEIGHMENT_TRAN.SEASON_CD=9) AND 
(trunc(weighment_tran.out_date) Between to_date('22-12-2013','dd-mm-yyyy') 
And to_date('22-12-2013','dd-mm-yyyy')) AND 
(AGREEMENT_TRAN.PLOT_NO=weighment_tran.plot_no) AND  (WEIGHMENT_TRAN.VILLAGE_CD=village_dir.village_cd)) and agreement_tran.payment_farmer_id=farmer_dir.farmer_id and village_dir.taluka_cd=taluka_dir.taluka_cd and village_dir.district_cd=district_dir.district_cd and agreement_tran.payment_bank_cd=bank_dir.bank_cd 
GROUP BY AGREEMENT_TRAN.PAYMENT_FARMER_ID, farmer_dir.first_name, farmer_dir.middle_name, taluka_dir.taluka_name, district_dir.district_name,bank_dir.bank_name, bank_dir.bank_branch, agreement_tran.payment_account_no, weighment_tran.registered_farmer_id 
Order by bank_dir.bank_name, bank_dir.bank_branch 

마침내 나는 오랜 시간 동안 노력해 주었고 @Thorsten에게 시간을 내 주셔서 감사합니다.

1

는 쿼리에 일부 실수가 될 것 같다 :

  1. 첫 번째 하위 쿼리가 좋아 보인다.
  2. 두 번째 하위 쿼리가 잘못되었습니다. 두 번째로 agreement_tran을 선택하지만 동일한 별명을 사용하십시오. 또한 w.plot_no와 비교하지만 w 테이블은 없습니다. (당신은 내부 합의의 이름을 짓는다고 생각하니?)
  3. 두 번째 하위 쿼리에서 group by 절은 의미가 없습니다. 그것을 제거하십시오.
  4. 결과를 정렬하지 않습니까? 위에는 줄 수를 표시하지만 질의 끝에는 순서가 없으므로 임의의 순서가 될 수 있습니다.

귀하의 검색어는 모든 계약, 해당 농부의 이름, 동일한 도표 번호를 가진 모든 계약서의 모든 사항 및 특정 시간대의 동일한 도표 번호가있는 순중량의 합계를 보여줍니다. 이것이 귀하의 기대에 부합하는지 확인하십시오. 예를 들어 모든 계약 또는 오히려 모든 플롯을 정말로 선택 하시겠습니까?

+0

아니. 나는 'weighment_tran'에있는 레코드 만 필요합니다. 나는 약간 혼란 스럽다. 어떻게해야 하는가! – Mallesh

+0

"agreement_tran a에서"를 선택합니다. 그러면 해당 테이블의 모든 레코드가 제공됩니다. 대신 weighment_tran에서 레코드를 작성한 경우 해당 테이블에서 선택하거나 테이블에서 결합하거나 IN 또는 EXISTS 절을 사용하여 결과를 해당 테이블로 제한하십시오. –

+0

우리는 당신의 테이블이 어떻게 관련되어 있는지 모르기 때문에 도움이되기가 어렵습니다. plot_no를 사용하면 참여할 수 있지만 보이는 대도시 테이블이 없기 때문에 의심스럽지 않습니다. 테이블의 열쇠는 무엇입니까? 무엇이 고유 한 레코드입니까? 줄거리 번호의 의미는 무엇입니까? –

관련 문제