Skip to content
Snippets Groups Projects
QueryNested.R 837 B
Newer Older
  • Learn to ignore specific revisions
  • Julien Lopez's avatar
    Julien Lopez committed
    # Returns the exchange rate between rfrom and rto
    getRate = function(rfrom, rto)
    {
      change = new.tableRef("change", "PostgreSQL", "postgre.config", "public")
      rate = query.force(where(function (r) r$cfrom == rfrom && r$cto == rto,
                         from(change)))
    
      if (rfrom == rto) 1.0 else rate$change
    
    Julien Lopez's avatar
    Julien Lopez committed
    }
    
    # Returns the names of employees earning at least minSalary in the curr
    # currency
    atLeast = function(minSalary, curr)
    {
      emp = new.tableRef("emp", "PostgreSQL", "postgre.config", "public")
      select(function (e) { r = new.env()
                            r$name = e$ename
                            r },
      where(function (e) e$sal >= minSalary * getRate("USD", curr),
      from(emp)))
    }
    
    
    richUSPeople = atLeast(2000.0, "USD")
    richEURPeople = atLeast(2000.0, "EUR")
    
    Julien Lopez's avatar
    Julien Lopez committed
    print(query.force(richUSPeople))
    print(query.force(richEURPeople))