Sometimes it helps if you write it out a different way; then work with the BPM options to bend it to your will 
If (PieceRate Y/N == true)
{
if (PieceRate != 0.0000 && AnalysisCode != “”)
{ //conditions pass }
else
{ //fail }
}
if psuedocode above is correct - the problem just may be as simple as the selections in your Condition 0 which currently says PieceRate != 0.0000 && AnalysisCode == ""