在同一图表中绑定两个查询
Binding two queries in the same chart
我有这个查询:
public static string shitjeJavore = "with java as "
+" (select subscription.username as username, "
+"convert(varchar,max(subscription.saledate),101)as saledate, "
+" convert(varchar,convert(datetime,max(startdate),100)) as startdate, "
+" convert(varchar,convert(datetime,max(enddate),100)) as enddate from subscription "
+" inner join SaleReport on SaleReport.username=subscription.username "
+" inner join login on login.username=subscription.username "
+" inner join users on users.username=subscription.name "
+" where pkgid = '5' "
+" and subscription.saledate >=(@from)
and subscription.saledate <= DATEADD(week,1,@from) "
+" and login.version> CONVERT(float,'1.70') "
+" and login.lockaccount='false' "
+" and users.Role<>'admin' "
+ " group by subscription.username "
+" having GETDATE()>=max(subscription.saledate)) "
+" , abonim as ( select count(username)as cc ,username from SaleReport "
+" group by username ) "
+" select max(saledate) as saledate,count(java.username) as usernameCount "
+" from java inner join abonim on java.username=abonim.username "
+" where cc=1 "
+" group by (saledate) " +
而且我想在同一张图表上绑定两次。在一个系列中,我希望绑定先前的查询,在第二个系列中,唯一的区别在于 WHERE 条件:
所以而不是:
where cc=1
i want it to be
where cc>1
.NET 图表组件可以做到这一点吗?
您的图表必须使用两个不同的系列。请看看这个,它会有所帮助:
Blogs MSDN
我设法合并了不同视图中的数据,以便将它们创建为具有相同结果的列,如下所示:
with java as
(select subscription.username as username,
convert(varchar,max(subscription.saledate),101)as saledate,
convert(varchar,convert(datetime,max(startdate),100)) as startdate,
convert(varchar,convert(datetime,max(enddate),100)) as enddate from subscription
inner join SaleReport on SaleReport.username=subscription.username
inner join login on login.username=subscription.username
inner join users on users.username=subscription.name
where pkgid = '5'
and subscription.saledate >=('02/01/2014') and subscription.saledate <= DATEADD(week,1,'02/01/2014')
and login.version> CONVERT(float,'1.70')
and login.lockaccount='false'
and users.Role<>'admin'
group by subscription.username
having GETDATE()>=max(subscription.saledate)
)
, abonim as ( select count(username)as cc ,username from SaleReport
group by username ),
Riabonim as
(select java.username, count(java.username) as cc
from java inner join abonim on java.username=abonim.username
where cc>1
group by java.username) ,
NewSub as
(select java.username, count(java.username) as cc
from java inner join abonim on java.username=abonim.username
where cc=1
group by java.username)
select (java.saledate) as saledate,
count(Riabonim.cc) as RiabonimCounter,
count(NewSub.cc) as NewCounter
from java
full outer join Riabonim on java.username= Riabonim.username
full outer join NewSub on java.username= NewSub.username
group by saledate
我有这个查询:
public static string shitjeJavore = "with java as "
+" (select subscription.username as username, "
+"convert(varchar,max(subscription.saledate),101)as saledate, "
+" convert(varchar,convert(datetime,max(startdate),100)) as startdate, "
+" convert(varchar,convert(datetime,max(enddate),100)) as enddate from subscription "
+" inner join SaleReport on SaleReport.username=subscription.username "
+" inner join login on login.username=subscription.username "
+" inner join users on users.username=subscription.name "
+" where pkgid = '5' "
+" and subscription.saledate >=(@from)
and subscription.saledate <= DATEADD(week,1,@from) "
+" and login.version> CONVERT(float,'1.70') "
+" and login.lockaccount='false' "
+" and users.Role<>'admin' "
+ " group by subscription.username "
+" having GETDATE()>=max(subscription.saledate)) "
+" , abonim as ( select count(username)as cc ,username from SaleReport "
+" group by username ) "
+" select max(saledate) as saledate,count(java.username) as usernameCount "
+" from java inner join abonim on java.username=abonim.username "
+" where cc=1 "
+" group by (saledate) " +
而且我想在同一张图表上绑定两次。在一个系列中,我希望绑定先前的查询,在第二个系列中,唯一的区别在于 WHERE 条件:
所以而不是:
where cc=1
i want it to be where cc>1
.NET 图表组件可以做到这一点吗?
您的图表必须使用两个不同的系列。请看看这个,它会有所帮助: Blogs MSDN
我设法合并了不同视图中的数据,以便将它们创建为具有相同结果的列,如下所示:
with java as
(select subscription.username as username,
convert(varchar,max(subscription.saledate),101)as saledate,
convert(varchar,convert(datetime,max(startdate),100)) as startdate,
convert(varchar,convert(datetime,max(enddate),100)) as enddate from subscription
inner join SaleReport on SaleReport.username=subscription.username
inner join login on login.username=subscription.username
inner join users on users.username=subscription.name
where pkgid = '5'
and subscription.saledate >=('02/01/2014') and subscription.saledate <= DATEADD(week,1,'02/01/2014')
and login.version> CONVERT(float,'1.70')
and login.lockaccount='false'
and users.Role<>'admin'
group by subscription.username
having GETDATE()>=max(subscription.saledate)
)
, abonim as ( select count(username)as cc ,username from SaleReport
group by username ),
Riabonim as
(select java.username, count(java.username) as cc
from java inner join abonim on java.username=abonim.username
where cc>1
group by java.username) ,
NewSub as
(select java.username, count(java.username) as cc
from java inner join abonim on java.username=abonim.username
where cc=1
group by java.username)
select (java.saledate) as saledate,
count(Riabonim.cc) as RiabonimCounter,
count(NewSub.cc) as NewCounter
from java
full outer join Riabonim on java.username= Riabonim.username
full outer join NewSub on java.username= NewSub.username
group by saledate