问题描述
我有多个站点,每个站点都有多个数据库,如下所示。
# Declare parks and databases list
$parkBGT = "AIT","BGT"
$parkBGW = "BGW","WCW"
$parkSPL = "SPL"
$parkSWC = "APC","SWC"
$OuputFile = "C:\csv\"
这是我的SQL函数
# SQL query execution fuction
function ExecuteSqlQuery ($server,$database,$uid,$pwd,$query) {
$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$server';database='$database'; User ID = '$uid'; Password = '$pwd';"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
$Command.CommandText = $query
$dataTable = New-Object System.Data.DataSet
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $Command
$SqlAdapter.Fill($dataTable)
$Connection.Close()
return $dataTable
}
我有几个foreach语句,用于从每个语句中提取数据,这里有几个。
foreach ($db in $parkBGT)
{
$serverXStore = "BGTSQL07\MERCHPOS"
$queryXStore = "SELECT
'XStore' as Source,business_date as Date,rtl_loc_id as Store,wkstn_id as Register,cast(round(sum(total),2) as numeric(36,2)) as Sales
FROM [XSTORE_$db].[dbo].[trn_trans]
where business_date = '2020-08-30'
--and wkstn_id = '431'
--and rtl_loc_id = '41100'
group by business_date,rtl_loc_id,wkstn_id;"
$dsXStore = New-Object System.Data.DataTable
$dsXStore = ExecuteSqlQuery $serverXStore $databaseXStore $uidXStore $pwdXStore $queryXStore
$dsXStore.Tables[0] | Export-Csv "$OuputFile $db.csv" -NoTypeInformation
}
foreach ($db in $parkBGW)
{
$serverXStore = "BGWSQL07\MERCHPOS"
$queryXStore = "SELECT
'XStore' as Source,wkstn_id;"
$dsXStore = New-Object System.Data.DataTable
$dsXStore = ExecuteSqlQuery $serverXStore $databaseXStore $uidXStore $pwdXStore $queryXStore
$dsXStore.Tables[0] | Export-Csv "$OuputFile $db.csv" -NoTypeInformation
}
我正在为每个数据库(如AIT.csv,BGT.csv,BGW.csv,WCW.csv等)获取csv文件。我的问题是如何将所有结果保存到一个CSV文件中,而不是每个数据库保存每个结果?谢谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)