SQL Server는 처음이지만 PL/SQL을 조금 사용했습니다.
부품 번호가있는 쿼리를 작성하고 현재 재고를 합산 한 다음 지난 180 일 동안 판매 된 QTY의 평균을 구합니다. 이것은 내가 지금까지 가지고있는 것이다.모두 동일한 부품 번호, 한 테이블의 SUM, 다른 테이블의 평균
SELECT
S.PartNum, S.PartDescription, S.CLASSID, SUM(D.STOCK), AVG(S2.QTY)
FROM PARTWHSE AS D
JOIN PART AS S ON S.PartNum = D.PartNum
LEFT JOIN PARTTRAN AS S2 ON S2.PartNum = S.PartNum
WHERE S.TRACKCODE = 0
AND S2.TRANDATE >= (GETDATE() -180)
GROUP BY PartNum, PartDescription, CLASSID;
문제는 내 합계가 제가 그것을 요약하면 너무 많은 행에 데려 오는 생각에 이르게하는 방법 오프 (이상) 들어오는 유지한다. 평균값은 괜찮습니다. 평균없이 합계 괜찮아요.
샘플 데이터 표 01
PartNum | 재고 |
101.123 | 100 |
101.123 | 250 |
101.123 | 150 |
샘플 데이터 표 02
PartNum | QTY
101.123 | 200
101.123 | 200
101.123 | (200)
현재 결과 S.PartNum
| Sum(D.STOCK)
| AVERAGE (S2.QTY)
101.123 | 3,000 | (200)
원하는 결과 S.PartNum
| Sum (STOCK)
| AVERAGE (S2.QTY)
101.123 | 500 | 200
도움을 주시면 감사하겠습니다. 단일 쿼리에서 수행하는 것이 바람직합니다.
더 나은 결과를 얻으려면 세 테이블 모두에 대한 샘플 데이터를 게시하십시오. – etsa