Q&A

  • DBGrid에 전체금액의합계중Group by에 의해그룹지어진 값의 점유율을 알아보려면?
지출내역 테이블은 아래와 같구요 ..

create table jichul_detail(
    pos_no           char(4)     not null,
    jichul_date      char(8)     not null,
    jichul_time      char(6)     not null,
    jichul_code      char(4)     not null,
    jichul_name      varchar(80)         ,
    jichul_amt       number              ,
    jichul_bigo      varchar(80)         ,
    user_id          char(6)             ,
    input_date       char(14)            ,
    update_date      char(14)            ,
    jichul_status    char(1)             ,

primary Key(pos_no, jichul_date, jichul_time, jichul_code))  
----------------------------------------------------------
여기서 저는
지출내역(jichul_name)에 의해 그룹 지어진 상태에서  각각의 그룹별로 금액 (jichul_amt) 에 따른 점유율을 알아보고 싶어요
  
try
    with Query_disp, SQL do begin
      Clear;
      Close;
      Add(' select jichul_name,count(*) As jichuul_Count1 ,sum(jichul_amt) As jichul_Amt1 ');
      Add(' from jichul_detail ');
      Add(' where jichul_date >='+ Quotedstr(S_jichul_Date_Fr) );
      Add('   and   jichul_date <= '  + Quotedstr(S_jichul_Date_To) );
      Add(' group by jichul_name');

      Open;
end;

이건 그냥 지출내역이랑 지출건수랑 금액합계 밖에 못 구했거든요..
어떻게 전체금액중에 각 지출내역의 점유율을 알수 있을까요??



1  COMMENTS
  • Profile
    김강수 2002.04.07 11:00
    select jichul_name, count(*) as jichul_Count1, SUM(jichul_amt) as jichul_amt1, SUM(jichul_amt) / MAX(jichul_amtX) * 100 as Percent1
    from aa, (select sum(jichul_amt) as jichul_amtX from aa) as bb
    group by jichul_name

    이렇게 하시면 될 겁니다. QA에 붙여 보시면 서브 쿼리 이용한 것임을 알게 될 것이고. MAX(jichul_amtX) 요 부분은 맨 아래 group by 때문에 오류 피
    한다고 처리 한 거구요. 그외에는 이해하는데 별문제 없으시죠 ?

    혹 SQL에 대한 질문이 있으시면 kkshamtuen@korea.com으로 주시면 성심껏 답변해 드리겠습니다.