我们有一个由查询驱动的列,并且查询使用基于另一个工作表上“用户输入单元格”的值的数学来部分地格式化列中的值。
对于真正好奇的人,我们的查询如下所示:
DECLARE @rotationsNum INT
SET @rotationsNum = ?
SELECT t.Piece_ID, t.Linear_Location, ((ROW_NUMBER() OVER(ORDER BY
Linear_Location) -1 )%@rotationsNum )*(360/@rotationsNum) AS Rotation FROM
(SELECT Position.Feature_Key, Piece_ID, ((Place-1)%(Places/@rotationsNum))+1 AS Linear_Location, Place, Measured_Value, Places FROM Fake.dbo.Position LEFT JOIN Fake.dbo.Features
ON Position.Feature_Key = Features.Feature_Key WHERE Position.Inspection_Key_FK = (SELECT Inspection_Key FROM Fake.dbo.Inspection WHERE Op_Key = ?)) AS t
ORDER BY Piece_ID, Linear_Location
第一个参数“@rotationsNum”是一个总是在1-4之间的值的单元格。如果值为1,则整列将显示“0”,我们希望将其显示为“N / A”。但是,它并不像"How to hide zero data.."那么简单,因为如果“@rotationsNum”== 2,3或4,那么需要的列中仍然会有0个值所示。
“@rotationsNum”值为2将使查询按以下方式写入列:example
所以我试图想出一种方法来格式化列= IF(单元格> 1,什么也不做,覆盖整个列说“NA”)。但我不认为这是直截了当的,因为该列是查询驱动的。
答案 0 :(得分:0)
我的解决方法是格式化列,以便如果驱动“@rotationsNum”参数的单元格低于2,则整个列只会“变灰”。它有点像编辑,并不像“NA”那样令人满意,但它适用于我们的目的。希望这个解决方案可以帮助那些偶然发现这个问题的人。