Dimension query with a compound filter and swapped sub-conditions

In this example, variable latitudeAttribute is always on the right side. Therefore, it is not a name of an attribute and it does not imply retrieving or comparing an attribute.


	OLAPConnection connection = OLAPCreateNamedConnection("");

	string errorMessage = "";
	int errorCode = 0;

	string sDimension = "Region";
	string sHierarchy = "Region";
	double latitudeAttribute = 0.0;
	string latitudeAttributeName = "Latitude";
	string nameAttribute = "Name";

	try
	{
		OLAPElementList list = on connection select all from sDimension
			with sHierarchy
			where ((-40.0 > latitudeAttribute) or (40.0 < latitudeAttribute))
			order by nameAttribute asc, parentcount desc;

		foreach (OLAPElement e in list)
		{
			WriteLine("\t" + ToString(e) + "\t\t\tLatitude: " + OLAPGetDoubleAttribute(connection, e, latitudeAttributeName));
		}
	}
	catch (errorMessage, errorCode)
	{
		WriteLine("Exception: " + errorMessage);
	}

	OLAPDisconnect(connection);

The dimension query selects all elements from hierarchy sHierarchy in dimension sDimension and filters them. The filtering itself compares double objects -40.0 and 40.0 to a variable latitudeAttribute. If the latitudeAttribute variable is not of type double, the code is not valid. If the latitudeAttribute variable is of type double, the code is valid. In this example the filtering is independent of all elements and attributes, it is dependent only on the initial value of latitudeAttribute.