我正在努力找出哪个年度的州经销商销售额最高。我正在使用Adventure Works DW 2008 R2数据库。
以下是我的查询 -
SELECT { [Reseller Sales Amount] } ON COLUMNS,
{
Generate (
[Geography].[Geography].[Country].Members,
TopCount (
Order (
Descendants (
[Geography].[Geography].CurrentMember
, [Geography].[Geography].[State-Province]
)
*[Date].[Calendar].[Calendar Year].Members,
[Reseller Sales Amount],
DESC
),
1
)
)
} ON ROWS
FROM [Adventure Works]
说到法国,它显示(null)作为结果集。另外,为什么不列出所有州 - 省,只选择其中几个?是否也可以将国家与结果一起使用。当我尝试另一个交叉连接时,我得到错误,说地理层次结构已经存在。
答案 0 :(得分:1)
要删除null,您可以使用BDESC
而不是DESC
。额外B
表示所有自然层次结构顺序都将被破坏
SELECT { [Reseller Sales Amount] } ON COLUMNS,
{
Generate (
[Geography].[Geography].[Country].Members,
TopCount (
Order (
Descendants (
[Geography].[Geography].CurrentMember
, [Geography].[Geography].[State-Province]
)
*[Date].[Calendar].[Calendar Year].Members,
[Reseller Sales Amount],
BDESC //<<<
),
1
)
)
} ON ROWS
FROM [Adventure Works];
要在国家/地区添加并避免您看到的错误,请使用未使用的属性层次结构[Geography].[Country]
,而不是您在1轴上已拥有的用户层次结构[Geography].[Geography]
:
SELECT
{[Reseller Sales Amount]} ON COLUMNS
,{
Generate
(
[Geography].[Geography].[Country].MEMBERS
,TopCount
(
Order
(
[Geography].[Country].[Country]*
Descendants
(
[Geography].[Geography].CurrentMember
,[Geography].[Geography].[State-Province]
)*
[Date].[Calendar].[Calendar Year].MEMBERS
,[Reseller Sales Amount]
,bDESC
)
,1
)
)
} ON ROWS
FROM [Adventure Works];
结果如下:
答案 1 :(得分:0)
我们将在关卡中探索TOP过滤器的通用选项实现。
可以为每个级别设置TOP规则。
用于详细分析数据(Expand,Drilldown)。
聚合是基于TOP形成的。
只要数据在中排序,就可以设置排序顺序 大多数数据透视表。
$('body').on('click', '[name=submit11]', function() {
var form = $(this).closest('form').get(0);
$('.error').remove();
var req = ['username', 'password'];
var div = '#login_form';
validate(div, req);
if ($('.error').length == 0) {
var login = true;
var username = $(this).siblings('[name=username]').val();
var password = $(this).siblings('[name=password]').val();
$.post('../ajax/multipurpose.php', {
login: login,
username: username,
password: password
}, function(data) {
if ($.trim(data) != '') {
$('#login_form').prepend("<div class='error'>" + data + "</div>");
}
else {
form.submit();
}
});
}
return false;
});