Ich habe viel versucht, um in dieses Problem zu graben. kam schließlich zu dem Punkt, wo es das verursacht "Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt.", was ich glaube, dass derselbe Schlüssel bereits vorhanden ist, für ein Beispiel a.field01 und b.field02.Fehler erhalten: Ein Artikel mit dem gleichen Schlüssel wurde bereits hinzugefügt - Fehler/Warnung im SSRS-Bericht
Hier ist der Code
ALTER PROCEDURE [dbo].[Payroll_Report]
@Office NVARCHAR(4000),
@Servicetype NVARCHAR(4000),
@Start DATETIME,
@End DATETIME
AS
BEGIN
SET NOCOUNT ON;
Select
a.owneridname
,a.[serviceidname]
,count(case
when
a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved'
then
a.serviceid
end) As 'Total# Confirmed Activities'
,CONVERT(NVARCHAR(16),
FLOOR((sum(case
when
a.serviceidname not like 'Indirect' and a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved'
then
a.[scheduleddurationminutes]
end))/60.0))
+ N':' + CONVERT(NVARCHAR(5), CONVERT(INTEGER,
FLOOR((sum(case
when
a.serviceidname not like 'Indirect'
then
a.[scheduleddurationminutes]
end)) % 60.0))) as 'Total Direct Activites HH:MM'
,CONVERT(NVARCHAR(16),
FLOOR((sum(case
when
a.serviceidname like 'Indirect' and a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved'
then
a.[scheduleddurationminutes]
end))/60.0))
+ N':' + CONVERT(NVARCHAR(5), CONVERT(INTEGER,
FLOOR((sum(case
when
a.serviceidname like 'Indirect'
then
a.[scheduleddurationminutes]
end)) % 60.0))) as 'Total Indirect Activites HH:MM'
,CONVERT(NVARCHAR(16),
FLOOR((sum(case
when
a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved'
then
a.[scheduleddurationminutes]
end))/60.0))
+ N':' + CONVERT(NVARCHAR(5), CONVERT(INTEGER,
FLOOR((sum(case
when
a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved'
then
a.[scheduleddurationminutes]
end)) % 60.0))) as 'Total Direct Activites HH:MM'
,Sum(Case
when a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved' and a.serviceidname not like 'Indirect'
then
b.new_approvedmileage
end
) as 'Total Approved Mileage (KMs)'
,CONVERT(NVARCHAR(16),
FLOOR((sum(case
when
b.new_expensestatusname like 'Approved'
then
b.new_approvedtravel
end))/60.0))
+ N':' + CONVERT(NVARCHAR(5), CONVERT(INTEGER,
FLOOR((sum(case
when
b.new_expensestatusname like 'Approved'
then
b.new_approvedtravel
end)) % 60.0))) as 'Total Approved Travel Time HH:MM'
,count(Case
when b.new_expensestatusname like 'Approved' and b.new_expensetypeidname like 'Stipends'
then
b.new_expensetypeidname
end
) As 'Total #Approved Stipends'
from
[dbo].[FilteredServiceAppointment] a
join
FilteredSystemUser fu
on a.ownerid = fu.systemuserid
join
.[dbo].[FilteredNew_expenses] b
on
fu.systemuserid = b.new_provider
where
a.scheduledstart BETWEEN @Start AND @End
AND b.new_serviceactivityid is null
AND a.siteidname IN (SELECT value FROM dbo.udf_Split(@Office, ','))
AND a.serviceidname IN (SELECT value FROM dbo.udf_Split(@Servicetype, ','))
group by
a.owneridname
,a.[serviceidname]
END
everythign Lasten, wenn ich oben SP in SSRS nennen außer 4. Spalte " 'Total Direct Activites HH: MM'", die unten von oben Code.
,CONVERT(NVARCHAR(16),
FLOOR((sum(case
when
a.serviceidname not like 'Indirect' and a.[statuscodename] like 'Confirmed' or a.new_approvalstatusname like 'Approved'
then
a.[scheduleddurationminutes]
end))/60.0))
+ N':' + CONVERT(NVARCHAR(5), CONVERT(INTEGER,
FLOOR((sum(case
when
a.serviceidname not like 'Indirect'
then
a.[scheduleddurationminutes]
end)) % 60.0))) as 'Total Direct Activites HH:MM'
Sobald ich diesen Teil des Codes Kommentar- es gibt mir „Ein Element mit demselben Schlüssel wurde bereits hinzugefügt.“ Fehler, wenn ich den Datensatz von SSRS aktualisiere.
BITTE HILFE.
Oh Mann, vielen Dank. Ich denke, ich muss meine Brille überprüfen. LOL. – user2040021
Wenn ich ein Nickel für jedes Mal habe, das mir passiert, hätte ich einen Dollar (USD). :) –