So, Birgitta's Solution worked with a couple of minor tweaks:
Select KeyDate, KeyTime, Fund, Func, Dept, Divn, Acct, Desc, Debit, Credit
from bafile ba
Cross Join Lateral(Values(1, ba.Fd1, ba.Fc1, ba.Dp1, ba.Dv1, ba.Ac1, ba.Ds1, ba.Dr1, ba.Cr1),
(2, ba.Fd2, ba.Fc2, ba.Dp2, ba.Dv2, ba.Ac2, ba.Ds2, ba.Dr2, ba.Cr2),
(3, ba.Fd3, ba.Fc3, ba.Dp3, ba.Dv3, ba.Ac3, ba.Ds3, ba.Dr3, ba.Cr3),
(4, ba.Fd4, ba.Fc4, ba.Dp4, ba.Dv4, ba.Ac4, ba.Ds4, ba.Dr4, ba.Cr4),
(5, ba.Fd5, ba.Fc5, ba.Dp5, ba.Dv5, ba.Ac5, ba.Ds5, ba.Dr5, ba.Cr5),
(6, ba.Fd6, ba.Fc6, ba.Dp6, ba.Dv6, ba.Ac6, ba.Ds6, ba.Dr6, ba.Cr6),
(7, ba.Fd7, ba.Fc7, ba.Dp7, ba.Dv7, ba.Ac7, ba.Ds7, ba.Dr7, ba.Cr7),
(8, ba.Fd8, ba.Fc8, ba.Dp8, ba.Dv8, ba.Ac8, ba.Ds8, ba.Dr8, ba.Cr8),
(9, ba.Fd9, ba.Fc9, ba.Dp9, ba.Dv9, ba.Ac9, ba.Ds9, ba.Dr9, ba.Cr9),
(10, ba.Fd10, ba.Fc10, ba.Dp10, ba.Dv10, ba.Ac10, ba.Ds10, ba.Dr10, ba.Cr10),
(11, ba.Fd11, ba.Fc11, ba.Dp11, ba.Dv11, ba.Ac11, ba.Ds11, ba.Dr11, ba.Cr11),
(12, ba.Fd12, ba.Fc12, ba.Dp12, ba.Dv12, ba.Ac12, ba.Ds12, ba.Dr12, ba.Cr12),
(13, ba.Fd13, ba.Fc13, ba.Dp13, ba.Dv13, ba.Ac13, ba.Ds13, ba.Dr13, ba.Cr13),
(14, ba.Fd14, ba.Fc14, ba.Dp14, ba.Dv14, ba.Ac14, ba.Ds14, ba.Dr14, ba.Cr14),
(15, ba.Fd15, ba.Fc15, ba.Dp15, ba.Dv15, ba.Ac15, ba.Ds15, ba.Dr15, ba.Cr15),
(16, ba.Fd16, ba.Fc16, ba.Dp16, ba.Dv16, ba.Ac16, ba.Ds16, ba.Dr16, ba.Cr16))
x (Counter, Fund, Func, Dept, Divn, Acct, Desc, Debit, Credit)
where fund > 0
order by KeyDate, KeyTime
;
had to qualify the field names and remove the double right paren on each line except the last one, then works like magic!!
#SQL