Você está pedindo todos os subconjuntos que somam exatamente $30.
Isso se parece muito com o problema de soma de subconjunto e problema da mochila , então duvido muito que você possa fazer isso com uma consulta simples. Você provavelmente teria que recorrer ao T-SQL, mas mesmo isso provavelmente ficaria feio.
Acho que a programação é o caminho a percorrer aqui.