Reputation: 80
I've three tables in this mode:
Time1 with column "Data" in format gg/mm/aaaa
Manual with columns "valMan" and "dataora" same format.
Automatic with columns "valAuto" and "dataora" same format.
I must find values "valAuto" from table Automatic where Data.Time1 is = dataora.Automatic and if the value is null I take this value from valMan.Manual in the same Data.Time1 = dataora.Manual
In access sql or vb for access.
Is very important for me... Thank you a lot!!!
Upvotes: 1
Views: 79
Reputation: 166356
For MS Access you can try Iif and IsNull
SELECT Time1.Data,
IIf(IsNull([valAuto]),[valMan],[valAuto]) AS Expr1
FROM (Time1 LEFT JOIN Automatic ON Time1.Data = Automatic.dataora) LEFT JOIN
Manual ON Time1.Data = Manual.dataora;
or
SELECT Time1.Data,
Nz([valAuto],[valMan]) AS Expr1
FROM (Time1 LEFT JOIN Automatic ON Time1.Data = Automatic.dataora) LEFT JOIN
Manual ON Time1.Data = Manual.dataora;
Upvotes: 1
Reputation: 51868
Don't know about access, but this should do it in MS SQL Server
SELECT
ISNULL(a.valAuto, m.valMan) AS whatIWant
FROM
Automatic a
INNER JOIN Time1 t ON a.dataora = t.Data
INNER JOIN Manual m ON t.Data = m.dataora
The ISNULL command replaces valAuto with valMan if valAuto is null.
Upvotes: 0