Query: olapR Query Construction

Query constructs a "Query" object. Set functions are used to build and modify the Query axes and cube name.

Usage

  Query(validate = FALSE)

  cube(qry)
  cube(qry) <- cubeName

  columns(qry)
  columns(qry) <- axis

  rows(qry)
  rows(qry) <- axis

  pages(qry)
  pages(qry) <- axis

  chapters(qry)
  chapters(qry) <- axis

  axis(qry, n)
  axis(qry, n) <- axis

  slicers(qry)
  slicers(qry) <- axis

  compose(qry)

  is.Query(qry)

Arguments

validate

A logical (TRUE, FALSE, NA) specifying whether the Query should be validated during execution

qry

An object of class "Query" returned by Query

cubeName

A string specifying the name of the cube to query

axis

A vector of strings specifying an axis. See example below.

n

An integer representing the axis number to be set. axis(qry, 1) == columns(qry), axis(qry, 2) == pages(qry), etc.

Details

Query is the constructor for the Query object. Set functions are used to specify what the Query should return. Queries are passed to the Execute2D and ExecuteMD functions. compose takes the Query object and generates an MDX string equivalent to the one that the Execute functions would generate and use.

Value

Query returns an object of type "Query". cube returns a string. columns returns a vector of strings. rows returns a vector of strings. pages returns a vector of strings. sections returns a vector of strings. axis returns a vector of strings. slicers returns a vector of strings. compose returns a string. is.Query returns a boolean.

Notes

  • A Query object is not as powerful as pure MDX. If the Query API is not sufficient, try using an MDX Query string with one of the Execute functions.

References

See execute2D or executeMD for references.

See also

execute2D, executeMD, OlapConnection, explore

Examples


 qry <- Query(validate = TRUE)

 cube(qry) <- "[Analysis Services Tutorial]"

 columns(qry) <- c("[Measures].[Internet Sales Count]", "[Measures].[Internet Sales-Sales Amount]")
 rows(qry) <- c("[Product].[Product Line].[Product Line].MEMBERS") 
 axis(qry, 3) <- c("[Date].[Calendar Quarter].MEMBERS")

 slicers(qry) <- c("[Sales Territory].[Sales Territories].[Sales Territory Region].[Northwest]")

 print(cube(qry)) #[Analysis Services Tutorial]
 print(axis(qry, 2)) #c("[Product].[Product Line].[Product Line].MEMBERS") 

 print(compose(qry))  #SELECT {[Measures].[Internet Sales Count], [Measures].[Internet Sales-Sales Amount]} ON AXIS(0), {[Product].[Product Line].[Product Line].MEMBERS} ON AXIS(1), {[Date].[Calendar Quarter].MEMBERS} ON AXIS(2) FROM [Analysis Services Tutorial] WHERE {[Sales Territory].[Sales Territories].[Sales Territory Region].[Northwest]}