2016-05-17 1 views
0

Ich bin total ratlos.Daten an SSRS zurückgegeben nicht die gleiche wie SSMS Query

Ich habe die folgende SQL-Abfrage, die gut in SSMS läuft, ich füge dann die Abfrage zu SSRS und alles ist alles seltsam.

Einige Datenzeilen werden ohne ersichtlichen Grund weggelassen und die Werte in WABill und WACost werden ebenfalls geändert, wenn der Bericht berücksichtigt wird.

Ich habe die rdl.data im Projektordner gelöscht, kein Glück.

Ich habe einen hinterhältigen Verdacht es etwas haben könnte, mit der GROUP BY

Der Bericht ist Setup-hat die Datumsparameter zu tun definiert und werden die Daten für die Datumsauswahl ausgewählt.

ich fügen Sie den SQL-Skript als Text auf dem DataSet

Ich werde Ihre Hilfe zu schätzen wissen.

Declare @ToDate DateTime 
Declare @FromDate DateTime 
Declare @WACost as Numeric (18,2) 
Declare @WABill as Numeric (18,2) 


Set @FromDate = '20160501' 
Set @ToDate = '20160510' 

Set @WACost = (
       Select 
        sum(dbo.DataInput.ShiftHrs * dbo.HRDATA.RatePH) + Sum((dbo.FleetData.OwnCost + dbo.FleetData.OpCost) 
        * dbo.DataInput.Hrs) 
       From  dbo.DataInput INNER JOIN 
         dbo.HRData ON dbo.DataInput.HRId = dbo.HRData.HRId INNER JOIN 
         dbo.FleetData ON dbo.FleetData.FleetId = dbo.DataInput.FleetId INNER JOIN 
         dbo.WorkCodes ON dbo.DataInput.WorkCodeId = dbo.WorkCodes.WorkCodeID 
      WHERE ProdDate >= @FromDate AND ProdDate <= @ToDate and dbo.workcodes.WorkCode = 101 
      ) 

Set @WABill = (
       Select 
       sum(dbo.DataInput.ShiftHrs * dbo.HRDATA.RateBill) + Sum((dbo.FleetData.OwnBill + dbo.FleetData.OpBill) 
       * dbo.DataInput.Hrs) 
       From dbo.Datainput Inner Join 
        dbo.FleetData ON dbo.FleetData.FleetId = dbo.DataInput.FleetId INNER JOIN 
        dbo.HRData ON dbo.DataInput.HRId = dbo.HRData.HRId INNER JOIN 
        dbo.WorkCodes ON dbo.DataInput.WorkCodeId = dbo.WorkCodes.WorkCodeID 

       WHERE ProdDate >= @FromDate AND ProdDate <= @ToDate and dbo.WorkCodes.WorkCode = 101 
      ) 

SELECT  

      @WACost as WACostTotal, @WABill as WABillTotal, 

       dbo.DataInput.DataInputID as DataInpID, dbo.DataInput.ProdDate as ProdDate, dbo.WorkCodes.WorkCode as WCode, dbo.DataInput.Hrs as ProdHrs, dbo.DataInput.Loads as ProdLoads, 
       dbo.DataInput.Fuel as ProdFuel, dbo.FleetData.FleetNo as ProdFltNo, dbo.JobCodes.JobCode, 
       dbo.FleetType.EquipmentType as EqType, dbo.FleetModel.ModelName as Model, dbo.Sites.SiteName as ProdSiteName, 
       dbo.JobCodes.JobDetails as JCDet, dbo.JobCodes.BillMeth as BillM, 
       dbo.FleetData.OwnCost as FltOwnCost, dbo.fleetdata.OpCost as FltOpCost, dbo.fleetdata.OwnBill as FltOwnBill, 
       dbo.FleetData.OpBill as FltOpBill, 

       (dbo.FleetModel.ModelSize * dbo.DataInput.Loads) as ProdBCM, 
       dbo.HRData.EmpNo as HREmp, dbo.HRData.RatePH as EmpCost, dbo.HRData.RateBill as EmpBill, 
       dbo.DataInput.ShiftHrs as ProdShHrs, dbo.FleetModel.ModelSize as MSize, 
       (dbo.DataInput.Fuel * dbo.JobCodes.FuelRate) as ProdFuelCost, 
       dbo.budget.BudDate as BdgDate, dbo.Budget.RevBCM as BdgRevBCM, dbo.Budget.PricePerBCM as BdgBCMPrice, 
       dbo.budget.BCMValue as BdgBCMVal, dbo.budget.SalWage as BdgSalWage, dbo.budget.Fuel as FuelBdg, 
       dbo.budget.PG0 as PGZero, dbo.budget.PG as PGCP, 
       dbo.budget.siteId as BudgSite, 

       --BILLING CALCS 

       --PG Billing 
       IIF(dbo.Workcodes.WorkCode = 101, 
       (dbo.Budget.SalWage * (1 + dbo.Budget.SalWagePerc)) + dbo.budget.PG0 + 
       (dbo.budget.PG * (1 + PGPerc)),0) as PGBill, 

       --FleetBill 
       IIF(dbo.Workcodes.WorkCode = 101, 
       (FleetData.OwnBill + FleetData.OpBill) * DataInput.Hrs,0) as FleetBill, 

       --LabourCost 
       iif(dbo.WorkCodes.WorkCode = 101, 
       (dbo.DataInput.ShiftHrs * dbo.HRDATA.RateBill),0) as LabourBill, 

       --Total Variable Bill 
       iif(dbo.Workcodes.WorkCode = 101, 
       (dbo.DataInput.ShiftHrs * dbo.HRDATA.RateBill) + 
       (FleetData.OwnBill + FleetData.OpBill) * DataInput.Hrs,0) as TotalVarBill, 

       --WABill 
       iif(dbo.Workcodes.WorkCode = 101, 
       ((dbo.DataInput.ShiftHrs * dbo.HRDATA.RateBill) + 
       (FleetData.OwnBill + FleetData.OpBill) * DataInput.Hrs)/
       @WABill * ((dbo.Budget.SalWage * (1 + dbo.Budget.SalWagePerc)) + dbo.budget.PG0 + 
       (dbo.budget.PG * (1 + PGPerc))) + 
       ((dbo.DataInput.ShiftHrs * dbo.HRDATA.RateBill) + 
       (FleetData.OwnBill + FleetData.OpBill) * DataInput.Hrs) , 0) as WABill, 

       --COST CALCS 

       --PG Cost 

       IIF(dbo.WorkCodes.WorkCode = 101, 
       (dbo.Budget.SalWage + dbo.budget.PG0 + dbo.budget.PG),0) as PGCost, 

       --FLEETCOST 
       IIF(dbo.WorkCodes.WorkCode = 101, 
       (FleetData.OwnCost + FleetData.OpCost) * DataInput.Hrs,0) as FleetCost, 

       --LabourCost 
       iif(dbo.WorkCodes.WorkCode = 101, 
       (dbo.DataInput.ShiftHrs * dbo.HRDATA.RatePH),0) as LabourCost, 

       --Total Variables Cost 
       iif(dbo.WorkCodes.WorkCode = 101, 
       (dbo.DataInput.ShiftHrs * dbo.HRDATA.RatePH) + 
       (FleetData.OwnCost + FleetData.OpCost) * DataInput.Hrs,0) as TotalVarCost, 

       --WAOnly 
       iif(dbo.WorkCodes.WorkCode = 101, 
       ((dbo.DataInput.ShiftHrs * dbo.HRDATA.RatePH) + 
       (FleetData.OwnCost + FleetData.OpCost) * DataInput.Hrs)/
       @WACost * (dbo.Budget.SalWage + dbo.budget.PG0 + dbo.budget.PG),0) 
       as WACalc, 

       --WA 
       iif(dbo.WorkCodes.WorkCode = 101, 
       ((dbo.DataInput.ShiftHrs * dbo.HRDATA.RatePH) + 
       (FleetData.OwnCost + FleetData.OpCost) * DataInput.Hrs)/
       @WACost * (dbo.Budget.SalWage + dbo.budget.PG0 + dbo.budget.PG) + 
       ((dbo.DataInput.ShiftHrs * dbo.HRDATA.RatePH) + 
       (FleetData.OwnCost + FleetData.OpCost) * DataInput.Hrs) , 0) as WACost 


FROM   dbo.DataInput INNER JOIN 
         dbo.FleetData ON dbo.FleetData.FleetId = dbo.DataInput.FleetId INNER JOIN 
         dbo.FleetMake ON dbo.FleetData.FleetMakeId = dbo.FleetMake.FleetMakeId INNER JOIN 
         dbo.FleetModel ON dbo.FleetData.FleetModelId = dbo.FleetModel.ModelId INNER JOIN 
         dbo.FleetType ON dbo.FleetData.FleetTypeId = dbo.FleetType.FleetTypeId INNER JOIN 
         dbo.HRData ON dbo.DataInput.HRId = dbo.HRData.HRId INNER JOIN 
         dbo.Sites ON dbo.DataInput.SiteId = dbo.Sites.SiteId INNER JOIN 
         dbo.Budget ON dbo.Sites.SiteId = dbo.Budget.SiteId AND dbo.DataInput.Period = dbo.Budget.Period INNER JOIN 
         dbo.WorkCodes ON dbo.DataInput.WorkCodeId = dbo.WorkCodes.WorkCodeID INNER JOIN 
         dbo.JobCodes ON dbo.DataInput.JobCodeId = dbo.JobCodes.JobCodeId 

WHERE ProdDate >= @FromDate AND ProdDate <= @ToDate 

Group By dbo.DataInput.DataInputID, dbo.DataInput.DataInputID, dbo.DataInput.ProdDate, dbo.WorkCodes.WorkCode, dbo.DataInput.Hrs, 
       dbo.DataInput.Loads, dbo.DataInput.Fuel, dbo.FleetData.FleetNo, dbo.JobCodes.JobCode, 
       dbo.FleetType.EquipmentType, dbo.FleetModel.ModelName, dbo.Sites.SiteName, 
       dbo.JobCodes.JobDetails, dbo.JobCodes.BillMeth, dbo.FleetData.OwnCost, dbo.fleetdata.OpCost, 
       dbo.fleetdata.OwnBill, dbo.FleetData.OpBill,dbo.HRData.EmpNo, dbo.HRData.RatePH, dbo.HRData.RateBill, 
       dbo.DataInput.ShiftHrs, dbo.FleetModel.ModelSize, dbo.budget.BudDate, dbo.Budget.RevBCM, dbo.Budget.PricePerBCM, 
       dbo.budget.BCMValue, dbo.budget.SalWage, dbo.budget.Fuel, dbo.budget.PG0, dbo.budget.PG, 
       dbo.budget.siteId, dbo.jobcodes.FuelRate, dbo.datainput.workcodeid, dbo.budget.SalWagePerc, dbo.Budget.PGPerc, 
       dbo.WorkCodes.WorkCodeID 

Order By dbo.DataInput.ProdDate 

Bericht:

enter image description here

Wenn auf dem Wert der Suche nach DataInputID sollte es sein 1715,41

+0

löschen Sie die rdl-Datei vom Berichtsserver und stellen Sie sie erneut bereit – bmsqldev

Antwort

1

Wo soll ich anfangen? Überprüfen/machen Sie Folgendes:

  1. Zeigen auf die gleiche Datenbank?
  2. Verwendung des gleichen Datensatzes mit den gleichen Parametern
  3. Den Cache gelöscht?
  4. Überprüfen Sie, ob der Bericht gefiltert wird.
  5. Überprüfen Sie, ob der Bericht aggregiert.