簡體   English   中英

SSRS-設計報告

[英]SSRS-design report

我有我希望顯示的 SQL 結果,每個人都有不同的活動,每個活動的價格加上費用。 我將它們按人分組(見附圖)。 黃色突出顯示的結果應該是我的最終報告。 請你能幫忙。 有福

SQL查詢:

SELECT DISTINCT Name, Surname, TypeParticipant, i.IDBill, ip.Idparticipant, cast((f.couttotal / 100.0) AS DECIMAL(20, 2)) AS price, left(f.texte, 20) AS ActivityName, a.Activityfee, convert(VARCHAR, g.datedebut, 111) DateDébut, convert(VARCHAR, g.datefin, 111) DateFIn
FROM Fin.FactureItem i
LEFT JOIN ins.Inscription ip
    ON ip.Idinscription = i.IDinscription
LEFT JOIN Fin.FactureItem f
    ON f.IDfacture = i.IDfacture
INNER JOIN Part.participant p
    ON p.idparticipant = ip.idparticipant
INNER JOIN Acts.Groupe g
    ON g.idgroupe = ip.idgroupe
INNER JOIN Acts.Activite a
    ON a.idactivite = g.idactivite
INNER JOIN Part.ParticipantTypeParticipant t
    ON p.idparticipant = t.idparticipant – Blessed 11 secs ago
INNER JOIN Part.TypeParticipant ct
    ON ct.idtypeparticipant = t.idtypeparticipant
WHERE i.IDfacture IS NOT NULL
    AND i.idinscription IS NOT NULL
    AND p.idparticipant IN (
        45103
        ,12354
        ) 

結果

您將需要按所有其他列進行aggregation 這將根據您在image的輸出工作。 但是,我認為最高價值應該是 230 美元。 無論如何,根據我們的輸出,我需要修改查詢。 您可能需要進一步的子查詢。

     WITH cte
AS (
    SELECT DISTINCT nom
        ,prenom
        ,TitreFRA AS TypeParticipant
        ,i.IDfacture AS IDBill
        ,ip.Idparticipant
        ,cast((f.couttotal / 100.0) AS DECIMAL(20, 2)) AS price
        ,left(f.texte, 20) AS Activityandfees
        ,a.nomFra Activityname
        ,convert(VARCHAR, g.datedebut, 111) DateDébut
        ,convert(VARCHAR, g.datefin, 111) DateFIn
    FROM Finances.FactureItem i
    LEFT JOIN Inscriptions.Inscription ip ON ip.Idinscription = i.IDinscription
    LEFT JOIN Finances.FactureItem f ON f.IDfacture = i.IDfacture
    INNER JOIN participants.participant p ON p.idparticipant = ip.idparticipant
    INNER JOIN Activites.Groupe g ON g.idgroupe = ip.idgroupe
    INNER JOIN Activites.Activite a ON a.idactivite = g.idactivite
    INNER JOIN Participants.ParticipantTypeParticipant t ON p.idparticipant = t.idparticipant
    INNER JOIN participants.TypeParticipant ct ON ct.idtypeparticipant = t.idtypeparticipant
    WHERE i.IDfacture IS NOT NULL AND i.idinscription IS NOT NULL AND p.idparticipant IN (
            4513
            ,12354
            )
    )
    ,CT1
AS (
    SELECT nom
        ,prenom
        ,TypeParticipant
        ,Activityname
        ,DateDébut
        ,Activityandfees
        ,price
        ,ROW_NUMBER() OVER (
            PARTITION BY ACTIVITYANDFEES
             ORDER BY ACTIVITYNAME DESC
            ) rn
    FROM cte
    )
    ,ct2
AS (
    SELECT NOM
        ,PRENOM
        ,TYPEPARTICIPANT
        ,ACTIVITINAME
        ,Price
        ,0 Price1
        ,0 price2
        ,0 price3
      FROM ct1
      WHERE Activityandfees = 'Ajout de I Activite' AND rn = 1
    UNION ALL

    SELECT NOM
        ,PRENOM
        ,TYPEPARTICIPANT
        ,ACTIVITINAME
        ,0 Price
        ,price price1
        ,0 price2
        ,0 price3

    FROM ct1
    WHERE Activityandfees = 'Frias daccompagname' AND rn = 1

    UNION ALL

    SELECT NOM
        ,PRENOM
        ,TYPEPARTICIPANT
        ,ACTIVITINAME
        ,0 Price
        ,0 price1
        ,price price2
        ,0 price3

    FROM ct1
      WHERE Activityandfees = 'Frias dinscription' AND rn = 1

    UNION ALL

    SELECT NOM
        ,PRENOM
        ,TYPEPARTICIPANT
        ,ACTIVITINAME
        ,0 Price
        ,0 price1
        ,0 price2
        ,price Price3

    FROM ct1
    WHERE Activityandfees = 'Subvention' AND rn = 1
    )
SELECT NOM
    ,PRENOM
    ,TYPEPARTICIPANT
    ,ACTIVITINAME
    ,sum(cast(price as float)) AjoutActivityprice
    ,sum(cast(price1 as float)) daccompagnameActivityprice
    ,sum(cast(price2 as float)) dinscriptionActivityprice
    ,sum(cast(price3 as float)) Subventionprice
FROM ct2
GROUP BY NOM
    ,PRENOM
    ,TYPEPARTICIPANT
    ,ACTIVITINAME

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM