Похоже, что вы хотите изменить столбцы в предложении select запроса.
Вы можете выполнить интерполяцию строк с помощью $ {} в синтаксисе s"""
.Динамические столбцы могут храниться в списке отдельно, а затем объединяться с помощью mkString (",").Вы могли бы сделать что-то вроде ниже
val sel_list = List("date","a.mth","weekday").mkString(",")
val dataJoin = s"""SELECT
${sel_list} ,
if(a.x_days=b.x_days,b.y,c.z) as total,
case when (a.x - day(date)) +1 <=0 then 1
when (a.x - day(date)) +1 > 366 then 999
else (a.x - day(date)) +1 end as glt,
GROSS
FROM tableA a
left join tableB b
on a.mth = b.mth and a.x_days=b.x_days"""
println(dataJoin)
результаты
SELECT
date,a.mth,weekday ,
if(a.x_days=b.x_days,b.y,c.z) as total,
case when (a.x - day(date)) +1 <=0 then 1
when (a.x - day(date)) +1 > 366 then 999
else (a.x - day(date)) +1 end as glt,
GROSS
FROM tableA a
left join tableB b
on a.mth = b.mth and a.x_days=b.x_days