드로우홀릭 더베이직

쿼리 행간 계산 문의

2020.01.15 11:24:26 조회 수 12711 추천 수 0

쿼리 필드행과 행과 행 사이에 계산을 하고, 그 값을 행에 추가하는 것에 관한 문의입니다.


스크린샷 2020-01-15 오전 11.14.20.png


예컨대 위와 같은 쿼리값을 얻은 경우


각 연도별(열제목) 항목-수익(매출액)의 값을 각 연도별 항목-매출채권 으로 나누어


매출채권회전기일 이라는 항목명을 가진 열이 하단에 추가되는 결과를 원합니다.



어떠한 방법이 없을까요?



열로 추가하는 것이 불가능하다면 연도별 결과값을 표현할 수 있는 다른 방법이 있을까요?



감사합니다.


 




라키7

2020.01.15 11:32:40
*.197.241.178

자문자답입니다. 생각해보니 행과 열을 바꾸면 되겠네요! ㅎ

라키7

2020.01.15 12:01:37
*.197.241.178

ㅎ 근데 구체적으로 어떻게 바꿔야 할까요? ㅎㅎ 엄청난 수의 dlookup 함수를 써서 바꾸긴 했는데, 속도가 너무 느리고 번거롭네요. 참고하실 수 있도록 하단 댓글로 달도록 하겠습니다.


혹시 깔끔하게 바꾸는 쿼리문이 있을런지 문의드립니다!



라키7

2020.01.15 13:43:39
*.197.241.178

SELECT '2016-12-31' AS 기간, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "수익(매출액)" & Chr(34)) AS [수익(매출액)], DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출원가" & Chr(34)) AS 매출원가, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "판매비와관리비" & Chr(34)) AS 판매비와관리비, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출채권" & Chr(34)) AS 매출채권, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급금" & Chr(34)) AS 단기선급금, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급비용" & Chr(34)) AS 단기선급비용, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기매입채무" & Chr(34)) AS 단기매입채무, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급금" & Chr(34)) AS 단기미지급금, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기예수금" & Chr(34)) AS 단기예수금, DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급비용" & Chr(34)) AS 단기미지급비용
FROM qxsuNWC통합
GROUP BY '2016-12-31', DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "수익(매출액)" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출원가" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "판매비와관리비" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출채권" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급금" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급비용" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기매입채무" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급금" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기예수금" & Chr(34)), DLookUp("[2016-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급비용" & Chr(34))

union all

SELECT '2017-12-31' AS 기간, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "수익(매출액)" & Chr(34)) AS [수익(매출액)], DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출원가" & Chr(34)) AS 매출원가, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "판매비와관리비" & Chr(34)) AS 판매비와관리비, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출채권" & Chr(34)) AS 매출채권, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급금" & Chr(34)) AS 단기선급금, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급비용" & Chr(34)) AS 단기선급비용, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기매입채무" & Chr(34)) AS 단기매입채무, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급금" & Chr(34)) AS 단기미지급금, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기예수금" & Chr(34)) AS 단기예수금, DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급비용" & Chr(34)) AS 단기미지급비용
FROM qxsuNWC통합
GROUP BY '2017-12-31', DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "수익(매출액)" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출원가" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "판매비와관리비" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출채권" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급금" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급비용" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기매입채무" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급금" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기예수금" & Chr(34)), DLookUp("[2017-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급비용" & Chr(34))

UNION ALL SELECT '2018-12-31' AS 기간, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "수익(매출액)" & Chr(34)) AS [수익(매출액)], DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출원가" & Chr(34)) AS 매출원가, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "판매비와관리비" & Chr(34)) AS 판매비와관리비, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출채권" & Chr(34)) AS 매출채권, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급금" & Chr(34)) AS 단기선급금, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급비용" & Chr(34)) AS 단기선급비용, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기매입채무" & Chr(34)) AS 단기매입채무, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급금" & Chr(34)) AS 단기미지급금, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기예수금" & Chr(34)) AS 단기예수금, DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급비용" & Chr(34)) AS 단기미지급비용
FROM qxsuNWC통합
GROUP BY '2018-12-31', DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "수익(매출액)" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출원가" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "판매비와관리비" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "매출채권" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급금" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기선급비용" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기매입채무" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급금" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기예수금" & Chr(34)), DLookUp("[2018-12-31]","[qxsuNWC통합]","[항목] like " & Chr(34) & "단기미지급비용" & Chr(34));

profile

돌직구

2020.01.16 15:00:17
*.165.242.137

DLookup을 저렇게 많이 쓰면 무척 느려집니다.

DB를 쓰면 DB처럼 생각해야 합니다.

지금은 DB를 가지고 엑셀처럼 사용하시는 겁니다.


파일이 첨부되어 있지 않아 코멘트가 어렵네요.

일단 코멘트 드릴텐데.. 파일 첨부를 하면 더 좋을 겁니다.


일단 지금 구한 쿼리가 제대로 된 것인지 불확실한데..

일단 제대로 된 것이라고 가정해 보면..


각 년도별 '매출채권회전기일' 필드를 계산하는 쿼리를 별도로 만든 다음..

그것을 현재 화면 스크린샷에 표시된 그 쿼리와 UNION ALL 하면 됩니다.


이것이 이해가 된다면 상관 없겠지만..

그렇지 않다면 파일을 첨부해 보시는 것이 좋겠습니다.

라키7

2020.01.21 15:01:07
*.197.241.178

답변 감사드립니다. 행간 계산해서 행을 추가한다는 개념 자체가 DB 구조에 반하니, 수직적 결합밖에는 답이 없긴 하나, 아무래도 union all 쿼리는 일부 쿼리에 특정필드가 반드시 있어야 하는 경우의 쿼리 필드 일치 문제 때문에 번거로운 점이 있는 것 같습니다. 

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31952
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28101
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23150
380 무따2010 탭 컨트롤 안에 하위 폼 넣기 6 클로이 2020-04-28 5524
379 입력폼에서 작성자/작성일시 등의 필드 처리 1 클로이 2020-04-28 2512
378 강의 문의 겨루기 2020-04-01 454
377 ID와 암호 기반의 로그인 기능 클로이 2020-03-31 273
376 관계설정시 1 또는 무한대 표시가 안되네요. 3 클로이 2020-03-26 1540
375 직장인을 위한 실무 액세스 링크 문의 sdfawe 2020-03-02 299
374 [직장인을 위한 실무활용 엑세스] 메모장 한글 깨짐 file 1 전승진 2020-03-01 11328
373 책을 보다가 어떻게 궁금증이 하나 생겼는데 시도해보니 잘 안되서요.(급여대장/소득세계산) 3 ditto 2020-02-24 449
372 코드북 활용에 대한 질문입니다. 10 클로이 2020-02-23 9648
371 액세스 텍스트 연결방법과 관련하여 질문 드립니다. 2 broadside 2020-02-21 3764
370 콤보상자 단어 검색 문의 file 4 액알못 2020-02-17 10006
369 신규등록 코드 및 팝업 질문 file 액알못 2020-02-14 11696
368 입문자의 초보질문입니다 4 소목동 2020-02-12 5610
367 비슷한 단어 찾기 코드좀 알려주세요 4 액알못 2020-02-09 634
366 쿼리 구성방법 질문드려요 1 broadside 2020-02-03 424
» 쿼리 행간 계산 문의 file 5 라키7 2020-01-15 12711
364 튜터링 서비스 문의 1 sdifejidfieji 2020-01-06 498
363 Data 형태로 저장된 문장과 단어의 결합 2 라키7 2020-01-02 286
362 ㅎㅎ 질문이 끝이 없네요. 2 라키7 2019-12-28 1275
361 직장 프로그램 요구사항 명세서 만들면서 도움요청 1 엑세스00 2019-12-27 649


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.