Q&A

  • 이런 경우는 디비그리드로 어떻게 처리해야하는지...
의류품의 날짜(기간)별, 색상별, 사이즈별 매출액을 알려는 프로그램입니다.

SQL> desc cloth
  이름                                  Null?    유형
  ------------------------------- -------- ----
  DTE                             NOT NULL VARCHAR2(8)  일자
  SIZE                                        VARCHAR2(13)  사이즈
  COLOR                                      VARCHAR2(3)  색상
  SALEAMT                                    NUMBER(11)  판매액

사이즈는 00000000001xx 이면 x-small
              00000000002xx small
              00000000003xx medium
              00000000004xx large
              00000000005xx x-large
(xx는 숫자2자리가 랜덤)

- 쿼리문장 -

select
decode(color, '100', 'green',
                      '200', 'red',
                      '300', 'blue',
                      '400', 'orange',
                      '500', 'yellow',
                      '600', 'brown','err'),
  decode(substr(size, 11, 1), '1', 'x-small',
                                          '2', 'small',
                                          '3', 'medium',
                                          '4', 'large',
                                          '5', 'x-large','err'), sum(saleamt)
  from cloth
  where dte >= '20020901' and dte <= '20020930'
  group by color, substr(size, 11, 1)
  union
  select decode(color, '100', 'green',
                                '200', 'red',
                                '300', 'blue',
                                '400', 'orange',
                                '500', 'yellow',
                                '600', 'brown','err'),
  '합계', sum(saleamt) from cloth
  where dte >= '20020901' and dte <= '20020930'
  group by color


- 결과값 -

DECODE(C DECODE(SUBST SUM(SALEAMT)
--------- --------------- ---------------
green      x-small                     5132570
green      small                       1621610
green      medium                      363290
green      large                         714180
green      x-large                       582320
green      합계                         8413970
red        x-small                      4911300
red        small                        1400900
red        medium                       684000
red        large                          767800
red        x-large                       1257900
red        합계                          9021900
blue       x-small                       3300000
blue       small                          651500
blue       medium                        185300
blue       large                           520000
blue       x-large                        1439000
blue       합계                           6095800
orange     x-small                        4405200
orange     small                          1062200
orange     medium                         951100
orange     large                            842050
orange     x-large                          946500
orange     합계                            8207050
yellow     x-small                               0
yellow     합계                                  0
brown     x-small                          100000
brown     합계                             100000


오라클 DB를 이용하는데요..
다음과 같은 결과값을 DBGrid로 출력하고자 할 때
필드명이 Color와 Saleamt는 필드가 존재하므로 Editing BGrid1.Columns  에서 추가하거나 부를수가 있는데 구분값인 Size는 어떻게 불러야 합니까?  
만약 DBGrid로 불가능하다면 어떤 방법을 써야 화면 출력이 가능할지 알고
싶습니다.

데이터베이스에 있는 cloth라는 테이블에서 자료를 가지고와서 델파이상의 화면에서 보여주려 합니다.
color와 saleamt은 테이블에 필드명이 있지만 구분은 필드명이 있는 것이 아니거든요..
size라는 필드명은 13자리로 되어있는데 00000000001xx, 00000000002xx, 00000000003xx과
같이 구성이 되어있어서 서브스트링으로 숫자열 가운데서 0이 아닌 첫 번째 숫자를 떼어와서 그것으로 구분을 했습니다. 이렇게 나온 결과값으로 디비그리드에 대입시킬수 있나요?
아니면 다른 방법을 써야 합니까?
디비그리드는 필드명이 있어야만 보여줄수 있지 않나요?
화면으로 일단 출력이라도 되었으면 좋겠네요... 읽어주셔서 감사합니다.






3  COMMENTS
  • Profile
    hobakpa 2002.10.09 02:13
    select
            decode(color, '100', 'green',
                          '200', 'red',
                          '300', 'blue',
                          '400', 'orange',
                          '500', 'yellow',
                          '600', 'brown','err') COLOR,
              decode(substr(size, 11, 1), '1', 'x-small',
                                              '2', 'small',
                                              '3', 'medium',
                                              '4', 'large',
                                              '5', 'x-large','err') SIZE,
              sum(saleamt) SUM
      from cloth
      where dte >= '20020901' and dte <= '20020930'


    ALIAS를 주시면 될거 같은데요..........

    select color AA from cloth

    나중에 query1.fieldbyname('AA').AsString 식을 값을 사용할수도 있고요

    컬럼에디트 상에서도 기존에 나와있는 걸 모두 삭제후 다시 불러오시면
    AA가 로드 될거 같은데요...


    테스트를 안해봤지만 될거 같은 생각이 듭니다....도움이 되시길..
  • Profile
    withcount 2002.10.09 00:34
    TField.FieldKind 속성에 보면 fkCalculated속성이 있습니다.
    이 넘을 활용하시면 될듯하네요..

    TQuery나 TTable에서 필드를 추가할때 위와같이 속성을 정의해줄수있습니다.
    Calculated에 대해서는 많은 질답이 올라와있으니
    검색해보시면 좋은답변 많을겁니다..^^

  • Profile
    도니 2002.10.09 00:19
    디비그리드 필드를 가상으로 만드는 방법이 있던데..
    그부분에 대해서 찾아보세요..
    오래전에 해서 기억이 가물가물..^^;;

    • sunny
      2002.10.09 16:17
      안녕하세요 특정 웹페이지의 소스를 메모장에 뿌려주면 되나요 ? 그럼 인디에 있는 idHTTP1 컴포넌트를 ...
    • 김동완
    • 2002.10.09 02:54
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 사랑
    • 2002.10.09 02:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김해우
      2002.10.09 03:16
      그냥가기기 뭐해서.. Application.ProcessMessages 라는 Application객체를 사용해보세요.. 이렇게 ...
    • ji
    • 2002.10.09 01:35
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.10.10 04:07
      이 문제는 많은 답변이 있는걸로 봤습니다. 간단히 말씀드려서, 가능합니다.. 물론, 저도 ODBC나 특정 Al...
    • 김해우
      2002.10.09 02:28
      그냥 지나가기가 뭐해서.. 팁에 보니까 최용일 님이 오린 글이 있네요.. mysql로 검색해보세요...
    • 이미정
    • 2002.10.09 01:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신승철
      2002.10.12 01:28
      change event를 잡으시는것보다. onexit와 keypress를 같이 사용하시는게 나을듯합니다.
    • 홍성락
      2002.10.09 03:21
      아래 소스를 보니 DB와 연동되는거 같은데요 datetimepicker의 날짜와 DB의 날짜를 쿼리해서 사용해보시는...
    • 김해우
    • 2002.10.09 01:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박철우
    • 2002.10.09 00:37
    • 4 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.10.09 00:57
      팁란에 검색해보세요... 원하시는 결과가 있어요...^^ 즐프하세요...
    • 박철우
      2002.10.09 01:03
    • 최용일
      2002.10.09 02:20
      안녕하세요. 최용일입니다. 실제로 계산해보시면 금방아시겠지만 그렇게 하는것이 오차가 훨씬적습니다...
    • KDDG_ZZOM
      2002.10.09 01:09
      잘은 모르지만... 울나라에서 반올림이란 사사오입을 기본으로 생각하는데... 외국은 아닌것같더라구요......
    • 이원영
    • 2002.10.08 23:22
    • 3 COMMENTS
    • /
    • 0 LIKES
    • hobakpa
      2002.10.09 02:13
      select         decode(color, '100', 'green',   ...
    • withcount
      2002.10.09 00:34
      TField.FieldKind 속성에 보면 fkCalculated속성이 있습니다. 이 넘을 활용하시면 될듯하네요.. TQuery...
    • 도니
      2002.10.09 00:19
      디비그리드 필드를 가상으로 만드는 방법이 있던데.. 그부분에 대해서 찾아보세요.. 오래전에 해서 기억...
    • ji
    • 2002.10.08 23:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.10.09 01:20
      폼 디자인은 DB사용시와 같은 형태로 하시고요~ QRDBText1 대신 QRLabel1을 Detail band에 놓습니다(원...
    • 도니
      2002.10.08 23:55
      그냥 라벨인 경우에도 디테일 밴드에 붙이면 같이 반복해서 나타나는걸로 알고 있습니다.. 값들을 뿌리실 ...
    • 도니
    • 2002.10.08 23:10
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 설승호
      2002.10.08 23:24
      som := #$1; 혹은 som := chr($1);
    • 도니
      2002.10.08 23:38
      som := chr($x); 하면 에러가 갑자기 생겨버려여..여러개가..-_-; 무슨 조화인지...ㅠ.ㅠ
    • 한원희
      2002.10.09 01:03
    • 백진욱
    • 2002.10.08 23:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김해우
      2002.10.09 02:43
      그냥가기가 뭐해서... 간단합니다. 인쇄할때 Preview화면이 나오면 print setup아이콘을 클릭합니다....
    • 김상수
    • 2002.10.08 20:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최병철
      2002.10.08 22:24
      퀵레포트는 한페이지 여백이 디테일밴드에 영향이 많이 있읍니다. 참고로  디테일밴드의 높이...
    • 김상수
      2002.10.08 23:20
      매번 신경써서 답변해주시니 너무 감사합니다... 음 저같은 경우는 디테일 밴드의 라인(Row)수가 유...
    • 조희문
    • 2002.10.08 20:43
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.10.08 21:19
      imgsetup_bitmap.Free; Free 메소드를 사용하시면 됩니다. hsr////////////////////////////////////////...
    • 조희문
      2002.10.08 23:03
      free를 해봤는데... 폼 상에서는 사라지지 않더군요!! 폼 상에서 삭제 하면 어떻게 해줘야 할 까요!!
    • 홍성락
      2002.10.09 01:31
      폼의 Canvas.Draw에 단순이 그린거라면 Form1.Refresh으로 없앨수있지만 FormPaint이벤트등에 쓰셨다면 ...
    • 조희문
      2002.10.10 02:43
      비트맵은 삭제가 되는데 form1.Refresh 를 하면 폼의 배경 이미지가 깔려 있어서 깜빡거리는데 이런 ...
    • 하병준
    • 2002.10.08 19:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.10.09 01:06
      안녕하세요. 한원희입니다. 각 메신저 등에서 메일 보기를 클릭하게 되면, 잠시 로컬에 생성된 html을 ...
    • 손용석
    • 2002.10.08 18:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.10.08 19:44
      http://www.yessdata.com/product/sub_category_v15.asp?fst=A2&sec=A05
    • 김해우
    • 2002.10.08 18:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • ▲┫┃■┃콜론
      2002.10.08 22:30
      파라독스는 깨지면 복구가 어려운걸로 알고 있습니다. 게서 백업ㅇ르 잘 받아 두셔야죠~ 아래 자료실 데...
    • 김해우
      2002.10.08 22:38
      전부는 아니지만 제가 복구 하고 싶은 부분이 복원되었습니다. 소스를 한번 분석해서 전부복구하도록 하...
    • 김상수
    • 2002.10.08 18:46
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 신승철
      2002.10.12 01:39
      퀵리포트를 일반 그리드같은 컴퍼넌트로 생각하시고 사용하시면 될것입니다. 자세히말씀드리면 standard v...
    • 이추형
      2002.10.08 19:36
      미리보기 기능을 사용하시면 될거 같은데요..
    • KDDG_ZZOM
      2002.10.08 19:28
      혹 부장님이라는 분이 파빌쪽으로 많이 일했던분같네요...^^ 가능할겁니다... 근데 랭귀지마다 장단점이 있...
    • 김상수
      2002.10.08 19:38
      딱 맞췄네요..ㅋㅋㅋㅋ 부장님이 파워빌더를 잘 하는 거는 아니구요 저희 전산실에 주가 파워빌더...