简体   繁体   English

如何解决错误cubejs“未找到来自成员...请确保连接字段引用维度而不是列。”

[英]how to address error cubejs 'From members are not found ... Please make sure join fields are referencing dimensions instead of columns.'

I have the Error: From members are not found in [] for join {"join":{"relationship":"belongsTo"},"from":"Conversations","to":"Advisers","originalFrom":"Conversations","originalTo":"Advisers"}.我有错误:在 [] 中找不到加入 {"join":{"relationship":"belongsTo"},"from":"Conversations","to":"Advisers","originalFrom": “对话”,“originalTo”:“顾问”}。 Please make sure join fields are referencing dimensions instead of columns.请确保连接字段引用维度而不是列。 fallowing schemas with the fallowing schemas.休闲模式与休闲模式。

 cube(`Conversations`, { sql: ` select appUUID, roomId, sessionId, count(1) Messages, min(channel) channel, min(createdAt) FirstMessage, max(createdAt) LastMessage, max(case when type='status' and status='ended' then \`payload.selectedOption\` else '' end) EndReason, max( case when type='status' and status='ended' and sender='bot' then 'Robot' when type='status' and status='ended' and sender <> 'bot' then ( \`advisorId\` ) else '' end ) EndAdvisor, max(userGuest) userGuest, max(userGuestLocal) userGuestLocal from \`keybe-conversations\`.messages where ${SECURITY_CONTEXT.appUUID.filter( 'appUUID' )} group by appUUID, roomId, sessionId `, joins:{ Advisers: { relationship: 'belongsTo', sql: ` concat(${CUBE}.\`appUUID\`, '-', ${CUBE}.\`EndAdvisor\`) = concat(${Advisers}.\`appUUID\`, '-', ${Advisers}.\`userId\`)` } }, measures: { count: { type: `count`, drillMembers: [userGuest, userGuestLocal, channel] }, totalMessages: { type: `sum`, sql: `Messages`, title: 'Total Messages' }, ended: { type: `count`, filters: [ { sql: `${CUBE}.EndReason <> ''` } ], drillMembers: [userGuest, userGuestLocal, channel] }, notEnded: { type: `count`, filters: [ { sql: `${CUBE}.EndReason = ''` } ], drillMembers: [userGuest, userGuestLocal, channel] } }, dimensions: { pk: { sql: `concat(${CUBE}.\`appUUID\`, '-', ${CUBE}.\`roomId\`, '-', ${CUBE}.\`sessionId\`)`, type: `string`, primaryKey: true }, channel: { sql: `channel`, type: `string` }, appUUID: { sql: `${CUBE}.\`appUUID\``, type: `string`, title: `AppUUID` }, roomId: { sql: `${CUBE}.\`roomId\``, type: `string`, title: `RoomId` }, sessionId: { sql: `${CUBE}.\`sessionId\``, type: `string`, title: `Session Id` }, endReason: { sql: `${CUBE}.\`EndReason\``, type: `string`, title: `End Reason` }, endAdvisor: { sql: `${CUBE}.\`EndAdvisor\``, type: `string`, title: `End Advisor` }, firstMessage: { sql: `${CUBE}.\`FirstMessage\``, type: `time`, title: `First Message` }, lastMessage: { sql: `DATE_FORMAT(${CUBE}.\`LastMessage\`, '%Y-%m-%d %H:%m:%s')`, type: `string`, title: `Last Message` }, initialMessage: { sql: `DATE_FORMAT(${CUBE}.\`FirstMessage\`, '%Y-%m-%d %H:%m:%s')`, type: `string`, title: `Initial Message` }, userGuest: { sql: `${CUBE}.\`userGuest\``, type: `string`, title: `UserGuest` }, userGuestLocal: { sql: `${CUBE}.\`userGuestLocal\``, type: `string`, title: `UserGuestLocal` }, takenTime: { sql: `TIMESTAMPDIFF(HOUR,DATE_FORMAT(${CUBE}.\`FirstMessage\`, '%Y-%m-%d %H:%m:%s'),DATE_FORMAT(${CUBE}.\`LastMessage\`, '%Y-%m-%d %H:%m:%s'))`, type: 'string', title: 'TakenTime' } }, preAggregations: { // main: { // type: `originalSql`, // external: true // }, ConversationsRollup: { type: `rollup`, measureReferences: [Conversations.count], dimensionReferences: [Conversations.appUUID, Conversations.channel, Conversations.endAdvisor, Conversations.firstMessage, Conversations.lastMessage, Conversations.userGuest, Conversations.userGuestLocal], external: true }, joinedWithAdvisersRollup: { type: `rollupJoin`, measureReferences: [Conversations.count], dimensionReferences: [Advisers.name], rollupReferences: [Advisers.AdvisersRollup, Conversations.ConversationsRollup], external: true, } }, segments: { humanAdvisor: { sql: `${CUBE}.EndAdvisor <> 'Robot' AND ${CUBE}.EndAdvisor <> ''`, }, robotAdvisor: { sql: `${CUBE}.EndAdvisor = "Robot"`, }, withoutAdvisor: { sql: `${CUBE}.EndAdvisor = ''`, } } })

 cube(`Advisers`, { sql: ` SELECT * FROM \`keybe-conversations\`.advisers where ${SECURITY_CONTEXT.appUUID.filter( 'appUUID' )} `, joins: { Rooms: { relationship: 'hasMany', sql: `concat(${CUBE}.\`appUUID\`, '-', ${CUBE}.\`userId\`) = concat(${Rooms}.\`appUUID\`, '-', ${Rooms}.\`advisorId\`)` }, Conversations: { relationship: 'hasMany', sql: `concat(${CUBE}.\`appUUID\`, '-', ${CUBE}.\`userId\`) = concat(${Conversations}.\`appUUID\`, '-', ${Conversations}.\`EndAdvisor\`)` } }, measures: { count: { type: `count`, drillMembers: [name, email, userId] } }, dimensions: { pk: { sql: `concat(${CUBE}.\`appUUID\`, '-', ${CUBE}.\`userId\`)`, type: `string`, primaryKey: true }, appUUID: { sql:`${CUBE}.\`appUUID\``, type: `string`, title: `AppUUID` }, status: { sql: `${CUBE}.\`status\``, type: `string`, title: `Status` }, name: { sql:`${CUBE}.\`name\``, type: 'string', title: `Name` }, email: { sql:`${CUBE}.\`email\``, type: 'string', title: `Email` }, phone: { sql:`concat(COALESCE(${CUBE}.\`countryCode\`, 'NO NULO-'), ${CUBE}.\`phone\`)`, type: 'string', title: `Phone` }, userId: { sql:`${CUBE}.\`userId\``, type: 'string', shown: false } }, preAggregations: { AdvisersRollup: { type: 'rollup', measureReferences:[Advisers.count], dimensionReferences:[Advisers.status, Advisers.name, Advisers.email, Advisers.phone, Advisers.appUUID], external: true } } })

Thank you in advanced.提前谢谢你。

Could you try updating the join in your Conversation cube to look like this:您能否尝试更新Conversation多维数据集中的连接,使其看起来像这样:

  joins:{
    Advisers: {
      relationship: 'belongsTo',
      sql: ` concat(${CUBE.appUUID}, '-', ${CUBE.endAdvisor}) = concat(${Advisers.appUUID}, '-', ${Advisers.userId})`
    }
  },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 CubeJs 进行左外连接 - LEFT OUTER JOIN with CubeJs TypeScript 编译中缺少 home.component.spec.ts 错误。 请通过“文件”或“包含”属性确保它在您的 tsconfig 中 - Error home.component.spec.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property 如何编写一个程序,以确保在两个字段中输入的密码都匹配? - How to write a program that will make sure that the passwords entered in both fields match? 如何检查以确保表单字段不是空字符串? - How do I check to make sure form fields are not empty strings? 使用是的,我如何确保 2 个字段需要不同 - Using Yup how do i make sure that 2 fields need to be different 错误:viewType“resourceTimelineDay”不可用。 请确保您已加载所有必要的插件 - Error: viewType "resourceTimelineDay" is not available. Please make sure you've loaded all neccessary plugins 如何确保请求来自我的网站? - How to make sure requests are from my website? 请问如何在javascript中让工作日从星期一而不是星期日开始? - How to make the week days start at monday instead of sunday in javascript please? 检查以确保所有字段都已填写 - Check to make sure all fields are filled Jquery 错误:无法获取 Firebase 项目构建。 请确保该项目存在并且您的帐户有权访问它 - Error: Failed to get Firebase project build. Please make sure the project exists and your account has permission to access it
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM