2011-01-06 2 views
1

나는 backorder에 배치 된 항목에 대한 배송일을 예측하는 데 "현명한"논리를 사용하도록 요청 받았습니다.예상 배송 날짜 - 커서?

파이 내얼/리얼 팬시 디스플레이 하나의 구매 오더에 비해 backorder가 더 많으면 어떤 구매 주문이 어떤 인바운드 구매 주문을 커밋할지 계산합니다 적절한 날짜를 표시하십시오. 예 : 나는 내가 만족 최초의 PO를 오픈 PO 정보를 보유하고 요청 된 날짜 순서로 열려있는 각 판매 주문을 잡기 위해 커서를 사용하고받을 수있는 임시 테이블을 만들 수 있다는 것을 알고

Open Sales Orders 
SO# 123455 – Req Date 12/15/10 – PN A00Backorder 2 pcs. 
SO# 123462 – Req Date 12/16/10 – PN A00Backorder 7 pcs. 
SO# 123941 – Req Date 12/17/10 – PN A00Backorder 4 pcs. 

Open Purchase Orders 
PO# 987654 – Promised 12/29/10 – 5 pcs. 
PO# 994258 – Promised 1/15/11 – 15 pcs. 

Dates we should be displaying 
SO# 123455 – ESD = 12/29/10 
SO# 123462 – ESD = 1/15/11 
SO# 123941 – ESD = 1/15/11 

수량을 계산 한 다음 해당 PO에서 해당 수량을 감소시킵니다. 상황을 더 재미있게 만들기 위해 partial을 출하 할 것입니다. 따라서 첫 번째 order가 7 일 경우 5를 반환하고 나머지 2는 backorder에 배치합니다. 그래서, 그것은 12/29/10에 선적 된 것이고, 나머지 2는 1/15/11에 선적 될 것입니다. " 어떤 추천?

+2

SQL 대신 호출하는 응용 프로그램에서 논리를 수행하는 것이 좋습니다. 항목, 표시 할 날짜 및 수량을 테이블에 채우고 해당 데이터를 앱에서 사용하십시오. – JNK

+1

이와 같은 코드는 SQL로 할 수 있지만 최선의 도구는 아닙니다. 렌치를 사용하여 손톱을 망치질 수도 있지만 좋은 생각은 아닙니다. – JNK

답변

1

나는 이것이 단일 SQL 문으로 수행 될 수 있다고 생각하지만 너무 복잡해서 시도하고 쓰는 것이 어렵습니다. (누군가는 아마 내 게시의 분 이내에 나를 잘못 증명할 것입니다.) 절차 코드를 반복하는 것은 오늘의 순서 인 것처럼 보일 것입니다. 그냥 내 머리 위로 떨어져

, 나는 아마 같은 seomthing 않는 것 :

  • 판매 Purcahse 활동의 목록을 생성합니다은에 의해 처음으로 하루 후 주문
  • (다음 활동을 구입)
  • 카운터 (사용 가능한 단위) 및 충족 및 충족되지 않은 의무 목록 (판매액)을 추적하여이 목록을 반복합니다.
  • 각 행이 처리 될 때 평균값 항목을 추적하고 증분 (Purchases) 또는 감가 상각 (Sales) 필요에 따라
  • 각 판매 품목이 출시되면 사용 가능한 부품 수량에 따라 전체 또는 부분 이행 여부를 나타내는 새 항목 (새 테이블?)을 작성하거나 아직 완전히 처리되지 않은 판매를 추적하십시오.

모두 예상/예상이므로이 루틴에서 생성 된 데이터를 유지해야 할 필요는 없습니다. 맞습니까?

+1

@JNK와 동의하십시오. 아마도 T-SQL보다 절차 코드로 구현하는 것이 훨씬 쉽습니다. –