Hi Martin,
I tried this
public static server str Field1Value()
{
return strFmt('ISNULL((select top 1 Field1 from Table1 as table1 WHERE table1.PARTITION = %1 AND table1.DATAAREAID = %2 AND table1.Field2 != %3), %4)'
, SysComputedColumn::comparisonField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, Partition))
, SysComputedColumn::comparisonField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, DataAreaId))
, SysComputedColumn::comparisonField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, Field2))
SysComputedColumn::comparisonLiteral(View1::CurrentField1())
);
}
public static server str CurrentField1()
{
str x = strFmt('%1 "DummyValue"',SysComputedColumn::returnField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, Field1)));
return x;
}and this is the sql i got
SELECT Field1, Field2, Field3, Field4, DATAAREAID, PARTITION, RECID
, CAST(ISNULL
((SELECT TOP (1) Field1
FROM dbo.TABLE1 AS table1
WHERE (PARTITION = T1.PARTITION)
AND (DATAAREAID = T1.DATAAREAID)
AND (Field2 <> T1.Field2))
, N'T1.Field1 "DummyValue"') AS NVARCHAR(20)) AS Field1Value
FROM dbo.TABLE1 AS T1However, this is the sql that i want --
how can i amend x to get this result??SELECT Field1, Field2, Field3, Field4, DATAAREAID, PARTITION, RECID
,CAST(ISNULL
(
(
SELECT TOP (1) Field1
FROM dbo.TABLE1 AS table1
WHERE (PARTITION = T1.PARTITION)
AND (DATAAREAID = T1.DATAAREAID)
AND (Field2 <> T1.Field2)
),
(
(
SELECT TOP (1) Field1 'Dummyvalue'
FROM dbo.TABLE1 AS table1
WHERE (PARTITION = T1.PARTITION)
AND (DATAAREAID = T1.DATAAREAID)
AND (Field1 = T1.Field1)
)
)
)
AS NVARCHAR(20)
) AS Field1Value
FROM dbo.TABLE1 AS T1I tried to replace currentField1 method with this,
but i'm getting invalid unicode strings error
public static server str CurrentField1()
{
return strFmt('select top 1 Field1 "DummyValue" from Table1 as table1 WHERE table1.PARTITION = %1 AND table1.DATAAREAID = %2 AND table1.Field1 = %3'
, SysComputedColumn::comparisonField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, Partition))
, SysComputedColumn::comparisonField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, DataAreaId))
, SysComputedColumn::comparisonField(tableStr(View1), identifierStr(Table1), fieldStr(Table1, Field1))
);
}