E
execsys
I have a query that works just fine until I attempt to set a filter on
it.
Here is the SQL (sorry, this is quite ugly
SELECT SkillList.Character, SkillList.Skill, SkillsTable.Ability,
SkillsTable.Untrained, (SELECT [Modifier] FROM [AbilityTable] WHERE
[CharacterTable].[Str] = [AbilityTable].[Ability]) AS StrMod, (SELECT
[Modifier] FROM [AbilityTable] WHERE [CharacterTable].[Dex] =
[AbilityTable].[Ability]) AS DexMod, (SELECT [Modifier] FROM
[AbilityTable] WHERE [CharacterTable].[Con] = [AbilityTable].[Ability])
AS ConMod, (SELECT [Modifier] FROM [AbilityTable] WHERE
[CharacterTable].[Int] = [AbilityTable].[Ability]) AS IntMod, (SELECT
[Modifier] FROM [AbilityTable] WHERE [CharacterTable].[Wis] =
[AbilityTable].[Ability]) AS WisMod, (SELECT [Modifier] FROM
[AbilityTable] WHERE [CharacterTable].[Cha] = [AbilityTable].[Ability])
AS ChaMod,
IIf([Ability]="STR",[StrMod],IIf([ability]="DEX",[DexMod],IIf([Ability]="CON",[ConMod],IIf([Ability]="INT",[IntMod],IIf([Ability]="WIS",[WisMod],IIf([ability]="CHA",[ChaMod],0))))))
AS TotalMod, (SELECT [Ranks] FROM [CharacterSkills] WHERE
[CharacterTable].[Character] = [CharacterSkills].[LookupCharacter] AND
[SkillList].[Skill] = [CharacterSkills].[LookupSkill]) AS SkillRanks,
IIf([SkillRanks]>0,[SkillRanks]+[TotalMod],IIf([Untrained]="Yes",[TotalMod],0))
AS TotSkillRanks FROM (SkillList INNER JOIN SkillsTable ON
SkillList.Skill=SkillsTable.Skill) INNER JOIN CharacterTable ON
SkillList.Character=CharacterTable.Character;
Now basically this returns a table of records that does some
calculations and sometimes the calculation results in 0. When the
TotSkillRanks is calculated to be 0, I want the record to disappear
from the query results. However, when I add ">0" to the criteria of the
query in the TotSkillRanks column or when I do it via Filter - the
calculated fields all blank out after a moment of displaying what
appears to be the correct results.
Can anyone help?
it.
Here is the SQL (sorry, this is quite ugly
SELECT SkillList.Character, SkillList.Skill, SkillsTable.Ability,
SkillsTable.Untrained, (SELECT [Modifier] FROM [AbilityTable] WHERE
[CharacterTable].[Str] = [AbilityTable].[Ability]) AS StrMod, (SELECT
[Modifier] FROM [AbilityTable] WHERE [CharacterTable].[Dex] =
[AbilityTable].[Ability]) AS DexMod, (SELECT [Modifier] FROM
[AbilityTable] WHERE [CharacterTable].[Con] = [AbilityTable].[Ability])
AS ConMod, (SELECT [Modifier] FROM [AbilityTable] WHERE
[CharacterTable].[Int] = [AbilityTable].[Ability]) AS IntMod, (SELECT
[Modifier] FROM [AbilityTable] WHERE [CharacterTable].[Wis] =
[AbilityTable].[Ability]) AS WisMod, (SELECT [Modifier] FROM
[AbilityTable] WHERE [CharacterTable].[Cha] = [AbilityTable].[Ability])
AS ChaMod,
IIf([Ability]="STR",[StrMod],IIf([ability]="DEX",[DexMod],IIf([Ability]="CON",[ConMod],IIf([Ability]="INT",[IntMod],IIf([Ability]="WIS",[WisMod],IIf([ability]="CHA",[ChaMod],0))))))
AS TotalMod, (SELECT [Ranks] FROM [CharacterSkills] WHERE
[CharacterTable].[Character] = [CharacterSkills].[LookupCharacter] AND
[SkillList].[Skill] = [CharacterSkills].[LookupSkill]) AS SkillRanks,
IIf([SkillRanks]>0,[SkillRanks]+[TotalMod],IIf([Untrained]="Yes",[TotalMod],0))
AS TotSkillRanks FROM (SkillList INNER JOIN SkillsTable ON
SkillList.Skill=SkillsTable.Skill) INNER JOIN CharacterTable ON
SkillList.Character=CharacterTable.Character;
Now basically this returns a table of records that does some
calculations and sometimes the calculation results in 0. When the
TotSkillRanks is calculated to be 0, I want the record to disappear
from the query results. However, when I add ">0" to the criteria of the
query in the TotSkillRanks column or when I do it via Filter - the
calculated fields all blank out after a moment of displaying what
appears to be the correct results.
Can anyone help?