2013-04-25 60 views
1

我试图加入一个包含零件的卡片,并将一个总计的股票价值加入零件(某些零件不会有股票行)。在Squeryl中加入多个聚合表

我有我本以为这工作如下..

def stockPerBase = from(stock)(s => groupBy(s.base) compute(sum(s.quantity))) 
def allCardsWithStock = 
    join(cards, parts, stockPerBase.leftOuter)((c,p,s) => 
     on(c.partId === p.id, p.base === s.map(_.key)) 
     select(c, p, s.measures)) 

不过,我得到以下错误:

too many arguments for method on: (table: org.squeryl.Table[A])(declarations: A => Seq[org.squeryl.dsl.ast.BaseColumnAttributeAssignment])Unit 
[error] on(c.partId === p.id, p.base === s.map(_.key)) 

我如何能做到这样的查询任何帮助是极大apprecited。

回答

2

select子句应位于查询中的on之前。尝试颠倒两个子句的顺序,它应该工作。