A condition like this
%if SVI="&&SVI&i"
can NEVER be true, as the text SVI can never be equal to a text containing quotes, no matter what the macro variables resolve to.
The mistake comes from the misunderstanding of what a macro does, and when it does it. The macro can never have access to data that will be present once the code executes after the macro created it. You cannot use values in variables that will be present only once the data step created by the macro is compiled and executed.
Macro is for handling code, not for handling data. Print that on a large sheet in very large letters and fix it above your desk.
... View more