我在工作时使用SAP B1,并希望在批处理文件中导出CSV文件,以便我可以每15分钟安排一次导出到网站上。
这就是我现在所拥有的:
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:
以上所有字段都在OITM表中。
另外 - 如何使用SQLCMD查询连接表? 我需要能够加入OITW表才能在WHERE子句中指定T1。[WhsCode] = '01。主。
非常感谢任何帮助!
此致 瑞克
答案 0 :(得分:0)
你能澄清一下你还想做些什么吗? 我编写了VB.NET代码,并使用Windows任务调度程序每隔x分钟制作批处理文件来执行该代码。
你提到了OITM表,但也有ITM1表需要考虑,我发现在同一个查询中加入这两个表通常会给我所需的一切(就数据而言)来应用正确的where子句进行验证。
再一次,对于没有完全理解你的问题而道歉,但如果你能详细说明这个问题,我会很乐意尽力帮助你。
校准。
答案 1 :(得分:0)
没有什么可以阻止您在提供给SQLCMD的查询中使用WHERE
和JOIN
子句。他们只是常规的SQL查询。
例如,以下是您提供的查询,其中包含您指定的限制:
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提供此查询,就像在OP中查询一样:
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