드로우홀릭 더베이직
문의 드립니다
아래와 같이 Table A에 bom_number필드가 있고요. Category필드에 여러 종류의 items 있습니다.
query에서 bom_number 필드를 만들고 bom_number 별로 pipe 수량, flange 수량을 구하려고 오른쪽 그림과 같이 작성하였는데 에러가 발생합니다. 제 수식에 문제가 있는지 확인 부탁 드립니다.
그리고 책하고 똑같이 하기는 했는데 "& [bom_number].[value]" 에서 "&"는 무슨 의미이고 "[value]"는 무슨 의미인지 설명 부탁 드립니다.
Table A | Query | ||||||||
bom_number | rev | Category | availability | open_quantity | bom_number | pipe | flange | fitting | |
76AI14-2825-01 | 00A | Flange | In Stock | 1 | 76AI14-2825-01 | dsum("open_quantity","Table A","category='pipe' and bom_number= " & [bom_number].[value]) | |||
76AI14-2825-01 | 00A | Valves FLG | In Stock | 1 | 76AI14-2825-01 | dsum("open_quantity","Table A","category='pipe' and bom_number= " & [bom_number].[value]) | |||
76AI14-2825-01 | 00A | pipe | In Stock | 50 | 76AI14-2826-06 | dsum("open_quantity","Table A","category='pipe' and bom_number= " & [bom_number].[value]) | |||
76AI14-2825-01 | 00A | Bolts | In Stock | 4 | 76AP14-1700-01 | dsum("open_quantity","Table A","category='pipe' and bom_number= " & [bom_number].[value]) | |||
76AI14-2825-01 | 00A | Bolts | In Stock | 4 | 76AP14-1701-03 | dsum("open_quantity","Table A","category='pipe' and bom_number= " & [bom_number].[value]) | |||
76AI14-2825-01 | 00A | Gaskets | PO | 2 | |||||
76AI14-2826-03 | 00A | Flange | In Stock | 1 | |||||
76AI14-2826-03 | 00A | Bolts | In Stock | 4 | |||||
76AI14-2826-03 | 00A | Gaskets | PO | 1 | |||||
76AI14-2826-06 | 00A | Flange | In Stock | 2 | |||||
76AI14-2826-06 | 00A | Flange | In Stock | 1 | |||||
76AI14-2826-06 | 00A | Valves FLG | In Stock | 1 | |||||
76AI14-2826-06 | 00A | Valves FLG | In Stock | 1 | |||||
76AI14-2826-06 | 00A | Bolts | In Stock | 4 | |||||
76AI14-2826-06 | 00A | Bolts | In Stock | 16 | |||||
76AI14-2826-06 | 00A | Gaskets | PO | 2 | |||||
76AI14-2826-06 | 00A | Gaskets | PO | 3 | |||||
76AP14-1700-01 | 00A | Flange | In Stock | 1 | |||||
76AP14-1700-01 | 00A | Bolts | In Stock | 4 | |||||
76AP14-1700-01 | 00A | Gaskets | PO | 1 | |||||
76AP14-1701-03 | 00A | Fittings | PO | 1 | |||||
76AP14-1701-03 | 00A | Flange | In Stock | 1 | |||||
76AP14-1701-03 | 00A | Flange | PO | 1 |
|
안녕하세요
일단 샘플 파일 첨부 해 보았습니다.
위에 질문 하신 것처럼 어렵게 구현하지 않아도 됩니다.
여기서 중요한 점은 데이터를 어떻게 뽑아 낼 것인가를 고민 하시면 됩니다.
일단 Pipe 수량을 BOM 별로 뽑아 보려고 합니다.
이것을 말로 정의해 보자면 "각 BOM 별로 카테고리의 값이 Pipe 인 수량을 합한다!" 입니다. 그게 제 샘플의 viwPipeQtys 입니다. BOM을 '묶는 방법' 으로 수량을 '합계'로, 카테고리는 pipe 인 것으로 하면 간단하게 나옵니다.
flange 수량은 따로 설명하지 않겠습니다.
그렇다면 '각 BOM 별로 pipe의 수량과 flange 의 수량을 같이 보고싶으면 어떻게 할까?' 입니다.
일단 두 데이터 집합의 결과값에서 모든 BOM이 나오지 않습니다. 그래서 3 개의 데이터 집합이 필요합니다.
1. 모든 BOM 데이터
2. Pipe 데이터
3. flange 데이터
여기서 2번 3번은 위의 설명에서 생성이 가능합니다. 그러면 1의 데이터만 만들면 됩니다. 그게 샘플 파일의 viwBOMs입니다. 그리고 이 데이터 셋을 조합하면 됩니다.
여기서 중요한 사항이 있습니다. 2번과 3번의 데이터를 조인 할 때의 조인 속성이 중요합니다. *1번의 데이터를 모두 포함하는 2번 3번의 데이터 조합* 이 필요합니다. 그래야 모든 BOM에 대해 값이 표시됩니다.
그리고 [bom_number].[value] 의 의미는 제가 보기에는 이건 테이블이나 뷰가 아닌 엑세스 컨트롤의 값을 지짗하는 의미 같습니다. '[bom_number] 컨트롤의 값' 이란 의미 같습니다. &는 문자열 연결입니다.
예를 들어 위 테이블의 첫번째 레코드의 데이터를 기준으로 말하자면 쿼리를 만들 때 Category & availability 라고 하게되면, Category 의 값인 "Flange" 와 availability 의 값인 "In Stock" 이 조합되어 "FlangeIn Stock" 으로 표시되게 됩니다. 추가로 Category & "-" & availability 이렇게 하면 "Flange-In Stock" 이런 결과가 나올 겁니다.