我试图找出如何从SQL Server表中提取数据并将一个表的内容保存到单独的CSV文件中,基于一个名为ASOFDATE的字段 . 我的ASOFDATE是月结束日期 .
这是我到目前为止所拥有的 .
library(RODBC)
# connect to database
dbhandle = odbcDriverConnect('driver={SQL Server};server=SERVER_NAME;database=DATABASE_NAME;trusted_connection=true')
sampledata <- sqlQuery(dbhandle, "select * from [SERVER].[dbo].[TABLE]")
# Close the connection
close(dbhandle)
# Create a Date vector containing the 1st of all the subsequent months and subtract 1 day
# date.end.month <- seq(as.Date("2012-02-01"),length=4,by="months")-1
ASOFDATE <- seq(as.Date("2016-02-01"),length=12,by="months")-1
不知怎的,在这里我想我需要遍历DataFrame,但我不知道该怎么做 .
for (i in sampledata) {
do some kind of filter by ASAOFDATE
write.csv(sampledata, paste0("C:/Users/RSMITH/Desktop/test/", ASOFDATE, ".csv"), row.names = FALSE)
}
因此,例如,我使用它来从表中获取数据 .
数据集< - sqlFetch(dbhandle,“DATA”)
数据集包含以下字段:N_ID,SEQ_NO,REPORT_PERIOD_END,CONTACT_ID,CONSOL_KEY,CUSTOMER_NAME,COMPANY_CODE,SECTOR,OFFICER,ASOFDATE,COMPANY,REPORT_LINE
我创建了一个我希望“过滤”的月结日期列表:ASOFDATE < - seq(as.Date(“2016-02-01”),length = 12,by =“months”) - 1
然后,根据ASOFDATE在表中“过滤”记录,并将每个块保存为CSV,日期在文件名中 .
我100%肯定这是可能的,但我只是不知道如何将数据分成块并保存每个块 .
1 回答
你可以在这里使用
tidyverse
. 首先,创建一个路径向量,您可以将文件保存到 . 然后根据此列表中的ASOFDATE
和walk
将数据拆分为list
,同时保存列表中的元素 .数据