簡體   English   中英

(SSRS) IIF 聲明 - 空白數據

[英](SSRS) IIF Statement - Blank Data

我不確定為什么,但我的 IIF 聲明似乎不想工作。

=IIF(IsNothing(Fields!Calculated_Address.Value),Fields!Calculated_Dummy.Value, Fields!Calculated_Address.Value)

數據示例

有可用數據。

用以下內容替換您的表達式

=IIF(IsNothing(Fields!Calculated_Address.Value) OR Trim(Fields!Calculated_Address.Value)="",Fields!Calculated_Dummy.Value, Fields!Calculated_Address.Value)

采樣數據集

select 'address1' as address, 'address has value' as dummy
UNION ALL
select '' as address, 'address is empty string' as dummy
UNION ALL
select null as address, 'address is null' as dummy
UNION ALL
select '   ' as address, 'address contains spaces' as dummy

在此處輸入圖像描述

我的查詢是通過一個程序創建的,但這里是簡單的。

/*
 * Disclaimer!!!
 * This is not a real query being executed, but a simplified version for general vision.
 * Executing it with any other tool may produce a different result.
 */
 
select 
    [Customer].[CustID] as [Customer_CustID],
    [OrderRel].[OrderNum] as [OrderRel_OrderNum],
    [OrderRel].[PartNum] as [OrderRel_PartNum],
    [OrderDtl].[LineDesc] as [OrderDtl_LineDesc],
    [OrderRel].[LoadNum_c] as [OrderRel_LoadNum_c],
    [OrderRel].[DropSeq_c] as [OrderRel_DropSeq_c],
    [OrderHed].[PONum] as [OrderHed_PONum],
    [JobProd].[JobNum] as [JobProd_JobNum],
    [SerialNo].[SerialNumber] as [SerialNo_SerialNumber],
    [OrderDtl].[ShipComment] as [OrderDtl_ShipComment],
    [OrderRel].[OrderLine] as [OrderRel_OrderLine],
    [OrderRel].[OrderRelNum] as [OrderRel_OrderRelNum],
    [OrderRel].[SellingReqQty] as [OrderRel_SellingReqQty],
    [OrderRel].[ShipToNum] as [OrderRel_ShipToNum],
    [Customer].[Name] as [Customer_Name],
    [Customer].[Address1] as [Customer_Address1],
    [Customer].[Address2] as [Customer_Address2],
    [Customer].[Address3] as [Customer_Address3],
    [Customer].[City] as [Customer_City],
    [Customer].[State] as [Customer_State],
    [Customer].[Country] as [Customer_Country],
    [Customer].[PhoneNum] as [Customer_PhoneNum],
    [UD100].[LoadName_c] as [UD100_LoadName_c],
    [UD100].[LoadingMeters_c] as [UD100_LoadingMeters_c],
    [UD100].[TrailerType_c] as [UD100_TrailerType_c],
    [UD100].[Carrier_c] as [UD100_Carrier_c],
    [UD100].[Key1] as [UD100_Key1],
    (CONCAT(ShipTo.Name,'  ',
            ShipTo.Address1,'  ',
            ShipTo.City,'  ',
            ShipTo.State,'  ',
            ShipTo.Zip,'  ',
            ShipTo.Country) + Dummy) as [Calculated_Address],
    (COALESCE(CONVERT(nvarchar, UD100.DateCustContact_c, 105), CONVERT(nvarchar, UD100.CollectionDate_c, 105), CONVERT(nvarchar, UD100.AvailableDate_c, 105), (CASE 
 --Jan
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),1,1) then 'Early January' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),1,14) then 'Mid January'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),1,27) then 'Late January' 
 --Feb  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),2,1) then 'Early Feburary' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),2,14) then 'Mid Feburary'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),2,27) then 'Late Feburary' 
   
 --Mar  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),3,1) then 'Early March' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),3,14) then 'Mid March'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),3,27) then 'Late March' 
 --Apr  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),4,1) then 'Early April' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),4,14) then 'Mid April'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),4,27) then 'Late April' 
 --May  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),5,1) then 'Early May' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),5,14) then 'Mid May'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),5,27) then 'Late May' 
 --Jun  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),6,1) then 'Early June' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),6,14) then 'Mid June'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),6,27) then 'Late June' 
 --Jul  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),7,1) then 'Early July' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),7,14) then 'Mid July'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),7,27) then 'Late July' 
 --Aug  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),8,1) then 'Early August' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),8,14) then 'Mid August'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),8,27) then 'Late August' 
 --Sept  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),9,1) then 'Early September' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),9,14) then 'Mid September'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),9,27) then 'Late September' 
 --Oct  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),10,1) then 'Early October' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),10,14) then 'Mid October'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),10,27) then 'Late October'   
 --Nov  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),11,1) then 'Early November' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),11,14) then 'Mid November'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),11,27) then 'Late November' 
 --Dec  
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),12,1) then 'Early December' 
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),12,14) then 'Mid December'   
   WHEN UD100.Date01 = DATEFROMPARTS(YEAR(GETDATE()),12,27) then 'Late December'   
   else 
   'No date' 
 end))) as [Calculated_PlannedDate],
    [UD100].[LoadDesc_c] as [UD100_LoadDesc_c],
    [ShipTo].[Name] as [ShipTo_Name],
    [ShipTo].[Address1] as [ShipTo_Address1],
    [ShipTo].[Address2] as [ShipTo_Address2],
    [ShipTo].[Address3] as [ShipTo_Address3],
    [ShipTo].[City] as [ShipTo_City],
    [ShipTo].[State] as [ShipTo_State],
    [ShipTo].[ZIP] as [ShipTo_ZIP],
    [ShipTo].[Country] as [ShipTo_Country],
    [OrderDtl].[OrderNum] as [OrderDtl_OrderNum],
    [OrderDtl].[OrderLine] as [OrderDtl_OrderLine],
    [OrderHed].[OrderNum] as [OrderHed_OrderNum],
    ('') as [Calculated_Dummy],
    ('') as [Calculated_Dummy_2]
from Erp.OrderHed as OrderHed
inner join Erp.OrderDtl as OrderDtl on 
    OrderHed.Company = OrderDtl.Company
    and OrderHed.OrderNum = OrderDtl.OrderNum
    and ( not OrderDtl.PartNum like 'CONTRACT%'  )

inner join Erp.OrderRel as OrderRel on 
    OrderDtl.Company = OrderRel.Company
    and OrderDtl.OrderNum = OrderRel.OrderNum
    and OrderDtl.OrderLine = OrderRel.OrderLine
    and ( OrderRel.OpenRelease = 1  or OrderRel.OpenRelease = 0  )

left outer join Erp.JobProd as JobProd on 
    OrderRel.Company = JobProd.Company
    and OrderRel.OrderNum = JobProd.OrderNum
    and OrderRel.OrderLine = JobProd.OrderLine
    and OrderRel.OrderRelNum = JobProd.OrderRelNum
left outer join Erp.JobHead as JobHead on 
    JobProd.Company = JobHead.Company
    and JobProd.JobNum = JobHead.JobNum
left outer join Erp.SerialNo as SerialNo on 
    JobHead.Company = SerialNo.Company
    and JobHead.JobNum = SerialNo.JobNum
inner join Ice.UD100 as UD100 on 
    OrderRel.Company = UD100.Company
    and OrderRel.LoadNum_c = UD100.Key1
    and ( UD100.Key1 = @LoadNum  )

inner join Erp.ShipTo as ShipTo on 
    OrderRel.Company = ShipTo.Company
    and OrderRel.ShipToCustNum = ShipTo.CustNum
    and OrderRel.ShipToNum = ShipTo.ShipToNum
inner join Erp.Customer as Customer on 
    OrderHed.Company = Customer.Company
    and OrderHed.CustNum = Customer.CustNum
union
select 
    [Customer_Msc].[CustID] as [Customer_Msc_CustID],
    [MscShpDt].[PackNum] as [MscShpDt_PackNum],
    [MscShpDt].[PartNum] as [MscShpDt_PartNum],
    [MscShpDt].[LineDesc] as [MscShpDt_LineDesc],
    [MscShpHd].[LoadNum_c] as [MscShpHd_LoadNum_c],
    [MscShpHd].[DropSeq_c] as [MscShpHd_DropSeq_c],
    (convert(nvarchar(15), MscShpHd.PONum)) as [Calculated_PONum],
    [JobHead_Msc].[JobNum] as [JobHead_Msc_JobNum],
    [SerialNo_Msc].[SerialNumber] as [SerialNo_Msc_SerialNumber],
    [MscShpHd].[ShipComment] as [MscShpHd_ShipComment],
    [MscShpDt].[PackLine] as [MscShpDt_PackLine],
    (0) as [Calculated_MiscLine],
    [MscShpDt].[Quantity] as [MscShpDt_Quantity],
    [MscShpDt].[ShipToNum] as [MscShpDt_ShipToNum],
    [MscShpHd].[Name] as [MscShpHd_Name],
    [MscShpHd].[Address1] as [MscShpHd_Address1],
    [MscShpHd].[Address2] as [MscShpHd_Address2],
    [MscShpHd].[Address3] as [MscShpHd_Address3],
    [MscShpHd].[City] as [MscShpHd_City],
    [MscShpHd].[State] as [MscShpHd_State],
    [MscShpHd].[Country] as [MscShpHd_Country],
    [Customer_Msc].[PhoneNum] as [Customer_Msc_PhoneNum],
    [UD100_Msc].[LoadName_c] as [UD100_Msc_LoadName_c],
    [UD100_Msc].[LoadingMeters_c] as [UD100_Msc_LoadingMeters_c],
    [UD100_Msc].[TrailerType_c] as [UD100_Msc_TrailerType_c],
    [UD100_Msc].[Carrier_c] as [UD100_Msc_Carrier_c],
    [UD100_Msc].[Key1] as [UD100_Msc_Key1],
    ('') as [Calculated_Dummyfield],
    ('') as [Calculated_DummyField2],
    [UD100_Msc].[LoadDesc_c] as [UD100_Msc_LoadDesc_c],
    ('') as [Calculated_Dummy3],
    ('') as [Calculated_Dummy4],
    ('') as [Calculated_Dummy5],
    ('') as [Calculated_Dummy6],
    ('') as [Calculated_Dummy7],
    ('') as [Calculated_Dummy8],
    ('') as [Calculated_Dummy9],
    ('') as [Calculated_Dummy10],
    (0) as [Calculated_Dummy11],
    (0) as [Calculated_Dummy12],
    (0) as [Calculated_Dummy13],
    (CONCAT(MscShpHd.Name,'  ',
            MscShpHd.Address1,'  ',
            MscShpHd.City,'  ',
            MscShpHd.State,'  ',
            MscShpHd.Zip,'  ',
            MscShpHd.Country)) as [Calculated_MiscAddress],
    ((CASE 
   WHEN MscShpDt.PackNum LIKE '0%'THEN 'MISC' 
   WHEN MscShpDt.PackNum LIKE '1%'THEN 'MISC' 
   WHEN MscShpDt.PackNum LIKE '2%'THEN 'MISC' 
   ELSE 'N/A' 
  END)) as [Calculated_Misc_Order]
from Erp.MscShpHd as MscShpHd
inner join Erp.MscShpDt as MscShpDt on 
    MscShpHd.Company = MscShpDt.Company
    and MscShpHd.PackNum = MscShpDt.PackNum
left outer join Erp.JobHead as JobHead_Msc on 
    MscShpDt.Company = JobHead_Msc.Company
    and MscShpDt.JobNum = JobHead_Msc.JobNum
left outer join Erp.SerialNo as SerialNo_Msc on 
    JobHead_Msc.Company = SerialNo_Msc.Company
    and JobHead_Msc.JobNum = SerialNo_Msc.JobNum
inner join Erp.Customer as Customer_Msc on 
    Customer_Msc.Company = MscShpHd.Company
    and Customer_Msc.CustNum = MscShpHd.CustNum
inner join Ice.UD100 as UD100_Msc on 
    UD100_Msc.Key1 = MscShpHd.LoadNum_c
    and UD100_Msc.Company = MscShpHd.Company
    and ( UD100_Msc.Key1 = @LoadNum  )

where (MscShpHd.ShipDate >= dateadd (year, -2, Constants.Today))
order by OrderRel.OrderNum Desc

查詢返回的數據

我想向大家道歉。

我在 RDL 文件中的查詢中錯過了Calculated_Dummy

=IIF(IsNothing(Fields!Calculated_Address.Value) OR Trim(Fields!Calculated_Address.Value)="",Fields!Calculated_Dummy.Value, Fields!Calculated_Address.Value)

工作完美。 謝謝你:)

暫無
暫無

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

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