Suponha que eu tenha duas tabelas para junção externa
Tab1:
ID Nam
1 Joe
2 Moe
3 Flo
Tab2:
ID Val y w
1 stuff 66 33
2 duff 67 44
e uma das colunas resultantes é derivada -- ou seja, é uma função de duas outras colunas
SELECT Tab1.*, Tab2.Val, Tab2.y, Tab2.w, week(Tab2.y,Tab2.w) AS week
FROM Tab1 LEFT JOIN Tab2 ON Tab1.ID = Tab2.ID
Como esperado, onde não há junção, nulos aparecem nas colunas reais, mas #Error
aparecem na coluna derivada :
ID Nam Val y w week
1 Joe stuff 66 33 66w33
2 Moe duff 67 44 67w44
3 Flo #Error
Primeiro, pensei que poderia impedir #Error
por meio da função útil para lidar com strings nulas, Nz()
mas Nz(week(Tab2.y,Tab2.w))
não fiz nada. Em seguida, pensei que era algo que eu tinha que lidar em minha week()
função - ou seja, lidar com casos de IsNull(y)
- mas descobri que nem mesmo é chamado para os "casos nulos".
Como evitar que os #Error
valores apareçam?
Você precisa aplicar a função (
Nz
) que substitui o null por outro valor antes daweek
chamada da função. Usar:Você provavelmente também precisa de testes contra o especial
Value_for_y
ouValue_for_w
internoweek()
.