[英]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.