开发者

Query on 3 tables

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 fo开发者_开发技巧r access.

Is very important for me... Thank you a lot!!!


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

Nz

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;


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜