我想在R中操纵TSQL结果。我在SQL Server中有一个查询,我想基于一个ID列(在一个表中具有每个ID的结果)来分隔其结果。
以下是我到目前为止所做的。我在R中获得了id列:
conn <- odbcConnect("EDW")
unformatted_id <- readLines('id.txt')
formatted_id <- gsub("\t","", paste(unformatted_id, collapse=" "))
id = sqlQuery(conn, formatted_id)
id列如下:
SupplierId
1 1167
2 1831
3 924
4 1094
5 1141
6 1198
7 1590
我得到了这样的主要查询:
f <- function(i){
conn <- odbcConnect("EDW")
q = sqlQuery(conn, gsub("\t","", paste(readLines('stat.txt'), collapse=" ")))
idd = q$id_supplier; for (i in idd) {print(q)}
}
结果如下:
id_supplier supplier_name
1 869 A
2 963 B
4 1531 C
但是我需要单独的结果:一个用于id_supplier=869
,然后一个用于id_supplier=963
,依此类推。
这是我的查询
选择不同
supplier.id_supplier
,supplier.name作为供应商名称
,供应商。NMVAS供应商_NMV
,mean.category_bi
,平均月
,平均值。NMVAS mean_catNMv
,stat.Q1 AS Q1_catNMV
,stat.med AS med_catNMV
,stat.Q3 AS Q3_catNMV
FROM供应商
INNER JOIN Tier ON Tier.SupplierId = supplier.id_supplier
INNER JOIN的意思
ON Supplier.category_bi =平均值.category_bi
INNER JOIN统计信息
ON stat.category_bi =平均值.category_bi
当然,我的f
函数不能正常工作。我该如何修改?
非常感谢。