2014-01-28 4 views
0

직장에서 SAP B1을 사용하고 15 분마다 내보내기를 웹 사이트에 업로드하도록 예약 할 수 있도록 배치 파일에서 CSV 파일을 내보내려고합니다. .SQLCMD를 사용하여 SAP B1에서 쿼리를 내보내는 방법 배우기

  • 상품 코드
  • 항목 이름
  • 수량에 :

    SQLCMD -S SERVER-VMSQL -d SBO_COMPANYNAME -U sa -P adminpassword -Q "SELECT ItemCode, FrgnName, OnHand-IsCommited FROM OITM" -s "," -o "\\server-address\users\rick\TestBat.csv" -h-1 -s"," -W -w 999 
    

    이 나에게 열이있는 CSV의 수출을 제공합니다

    내가 지금 무엇을 가지고 판매 주문시 적은 수량으로

내가 필요한 것은 약간의 WHERE 절에 넣어이 쿼리를 자세히 설명하는 것입니다 - 예를 들어 WHERE :

  • U_Category = '장난감'
  • Qrygroup2 = 'Y'
  • (U_Category은 사용자 정의 필드입니다)

위의 모든 필드는 OITM 테이블 내에 있습니다.

또한 어떻게 SQLCMD 쿼리를 사용하여 테이블을 조인합니까? WHI 절에서 T1을 지정하도록 OITW 테이블에 가입 할 수 있어야합니다. [WhsCode] = '01. 본관'.

도움이 될 것입니다.

감사 릭

답변

0

SQLCMD에 제공 한 쿼리에 WHEREJOIN 절을 사용하는 것을 방지 할 수있는 방법은 없습니다. 그것들은 단지 일반적인 SQL 쿼리입니다.

: 당신이 당신의 영업 이익 쿼리와 함께했던 것처럼 그냥 SQLCMD이 쿼리를 제공 할 것입니다

SELECT OITM.ItemCode, OITM.FrgnName, OITM.OnHand-OITM.IsCommited 
FROM OITM 
    INNER JOIN OITW 
     ON OITW.ItemCode = OITM.ItemCode 
WHERE OITM.U_Category = 'Toys' 
    AND OITM.Qrygroup2 = 'Y' 
    AND OITW.WhsCode = '01. Main' 

:

예를 들어

, 여기에 사용자가 지정한 제한을 포함하도록 수정하여 제공된 쿼리입니다

SQLCMD -S SERVER-VMSQL -d SBO_COMPANYNAME -U sa -P adminpassword -Q "SELECT OITM.ItemCode, OITM.FrgnName, OITM.OnHand-OITM.IsCommited FROM OITM INNER JOIN OITW ON OITW.ItemCode = OITM.ItemCode WHERE OITM.U_Category = 'Toys' AND OITM.Qrygroup2 = 'Y' AND OITW.WhsCode = '01. Main'" -s "," -o "\\server-address\users\rick\TestBat.csv" -h-1 -s"," -W -w 999 
0

당신이 좀 더 일을하려고하는지 명확히 할 수 있습니까? VB.NET 코드를 작성하여 Windows 작업 스케줄러에서 매 x 분마다 코드를 실행하도록 배치 파일을 만들었습니다.

당신은 OITM 테이블을 언급하지만 ITM1 테이블도 고려해야합니다. 동일한 쿼리에서이 두 테이블을 조인하면 보통 (데이터 측면에서) 올바른 위치 조건을 적용하기 위해 필요한 모든 것을 제공한다는 것을 알았습니다 .

다시 한 번 말씀 드리지만 문제를 완전히 이해하지 못해 사과드립니다. 문제에 대해 자세히 설명해 주시면 기꺼이 도와 드리겠습니다.

Cal.

+0

안녕하세요, 죄송합니다. 이렇게 오래 걸려서 죄송합니다. 기본적으로 위의 정보를 사용하여 SAP B1 SQL 데이터베이스에서 CSV 파일을 내보내는 것입니다. 실제 문제는 특정 창고의 양과 확정 수량을 가져 오는 것입니다. – Rick