[英]Using RODBC package in R and sqlQuery function to join 3 tables from a Database
can you help me to understand how i can create a left join
between a master table
x1
and two other tables x2
and x3
using the sqlQuery
function from the RODBC
package in R. 您能帮助我了解如何使用R中
RODBC
包中的sqlQuery
函数在master table
x1
和两个其他表x2
和x3
之间创建left join
RODBC
。
After I setup the database connection I successfully can join two tables: 设置数据库连接后,我可以成功连接两个表:
library RODBC
dataframe <-sqlQuery(conn,"
SELECT
sum(A1.revenue1),
sum(A1.revenue2),
sum(A1.revenue3),
A2.SERVICE_TYPE_NAME
FROM
(FINANCE.x1 A1 LEFT JOIN CORE.x2 A2
ON (A1.YEAR_NUM = A2.YEAR_NUM
AND A1.SERVICE_TYPE_KEY = A2.SERVICE_TYPE_KEY)
)
WHERE A1.YEAR_NUM = '2015'
AND A2.SERVICE_TYPE_KEY='2'
GROUP BY A2.SERVICE_TYPE_NAME
")
but I fail when I try to bring a 3rd to the equation trying this: 但是当我尝试将等式带入方程式时,我失败了:
dataframe <-sqlQuery(conn,"
SELECT
sum(A1.revenue1),
sum(A1.revenue2),
sum(A1.revenue3),
A2.SERVICE_TYPE_NAME
FROM
(FINANCE.x1 A1 LEFT JOIN CORE.x2 A2
ON (A1.YEAR_NUM = A2.YEAR_NUM
AND A1.SERVICE_TYPE_KEY = A2.SERVICE_TYPE_KEY)
FINANCE.x1 A1 LEFT JOIN BRAND.x3
ON (A1.brand_ID=A3.brand_ID))
WHERE A1.YEAR_NUM = '2015'
AND A2.SERVICE_TYPE_KEY='2'
GROUP BY A2.SERVICE_TYPE_NAME
")
Your second SQL needs to be cleaned up. 您的第二条SQL需要清理。 You only mention each table once when doing a join.
进行联接时,每个表只提及一次。 Try this:
尝试这个:
SELECT SUM(A1.revenue1),
SUM(A1.revenue2),
SUM(A1.revenue3),
A2.SERVICE_TYPE_NAME
FROM FINANCE.x1 A1
LEFT JOIN CORE.x2 A2
ON A1.YEAR_NUM = A2.YEAR_NUM AND
A1.SERVICE_TYPE_KEY = A2.SERVICE_TYPE_KEY
LEFT JOIN BRAND.x3
ON A1.brand_ID=A3.brand_ID
WHERE A1.YEAR_NUM = '2015' AND
A2.SERVICE_TYPE_KEY = '2'
GROUP BY A2.SERVICE_TYPE_NAME
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.