2014-09-18 1 views
0

Ma question est exactement celle que j'ai utilisée pour le titre. J'ai un fichier .rdl avec deux jeux de données qui sont vraiment difficiles à combiner dans un seul script, donc je veux créer un graphique à secteurs en utilisant les deux comme des jeux de données individuels. J'ai besoin de trouver les pourcentages d'une addition de deux choses (une du premier ensemble de données et une de la seconde), donc j'ai besoin de cette addition et ensuite une division comme la suivante:Comment puis-je créer un graphique à secteurs dans un rapport combinant deux ensembles de données dans Visual Studio?

(first_thing + second_thing)/(sum (first_thing) + sum (second_thing))

par exemple J'ai des ventes de dog dans la table one et des ventes de cat's de l'autre et j'ai besoin de faire un camembert avec les pourcentages des ventes de chiens et de chats pour cela mois.

Comment puis-je le faire?

+0

Utilisez-vous réellement SSRS 2008? Si vous utilisiez SSRS 2008R2 ou plus récent, vous pouvez utiliser la fonction 'LOOKUP' dans SSRS. –

+0

ouais c'est le r2 désolé pour le mauvais choix de tag – natan

+0

Ho vous reliez les deux choses: ont-ils le même nom? Pouvez-vous poster des exemples de jeux de données? –

Répondre

0

Je ne connais pas un moyen de joindre deux ensembles de données dans un graphique à secteurs. À la place, je recommanderais de joindre vos ensembles de données dans un nouvel ensemble de données pouvant être utilisé par le graphique à secteurs. En utilisant votre exemple de vente de chats vs chiens par mois, j'ai créé un exemple de comment joindre ensemble deux ensembles de données.

Vous pouvez utiliser la colonne "total_sales" dans la requête finale pour remplir vos valeurs de diagramme à secteurs et vous pouvez utiliser "month_of_sale" comme groupe de séries.

-- Create temp table to store Cat sales data 
DECLARE @catSales TABLE(
     Sales INT 
     , MonthOfSale INT); 

-- Create temp table to store Dog sales data 
DECLARE @dogSales TABLE(
     Sales INT 
     , MonthOfSale INT) 

--Populate cat sales table with data 
INSERT INTO @catSales 
     (Sales, MonthOfSale) 
VALUES (50, -- Sales - int 
      1 -- MonthOfSale - int 
     ) 
INSERT INTO @catSales 
     (Sales, MonthOfSale) 
VALUES (100, -- Sales - int 
      2 -- MonthOfSale - int 
     ) 
INSERT INTO @catSales 
     (Sales, MonthOfSale) 
VALUES (75, -- Sales - int 
      3 -- MonthOfSale - int 
     ) 

--Populate dog sales table with data 
INSERT INTO @dogSales 
     (Sales, MonthOfSale) 
VALUES (150, -- Sales - int 
      1 -- MonthOfSale - int 
     ) 
INSERT INTO @dogSales 
     (Sales, MonthOfSale) 
VALUES (80, -- Sales - int 
      3 -- MonthOfSale - int 
     ) 
INSERT INTO @dogSales 
     (Sales, MonthOfSale) 
VALUES (200, -- Sales - int 
      4 -- MonthOfSale - int 
     ) 

--View data in cat sales table (note that months 1, 2, and 3 are all populated with data, but not month 4. 
SELECT Sales 
    , MonthOfSale 
FROM @catSales 


--View data in dog sales table (note that months 1, 3, and 4 are all populated with data, but not month 2. 
SELECT Sales 
    , MonthOfSale 
FROM @dogSales 


--Join the data from Cat and Dog sales together based on the month 
SELECT cs.sales AS 'cat_sales' 
    , ds.sales AS 'dog_sales' 
    , ISNULL(cs.sales, 0) + ISNULL(ds.sales, 0) AS 'total_sales' -- Use ISNULL to convert missing data into 0 so that it adds correctly 
    , ISNULL(cs.MonthOfSale, ds.MonthOfSale) AS 'month_of_sale' -- If there are not cat sales, then the cs.MonthOfSale will be null and ds.MonthOfSale should be used instead 
FROM @catSales cs 
    FULL OUTER JOIN @dogSales ds ON cs.MonthOfSale = ds.MonthOfSale -- Use full outer join to include all data from both tables 
Questions connexes