2

我有两张桌子

TableA Column1, Column2,Column3, Column4
TableB Column1, Column2,Column3, Column4

查询修改:

Select Column2,Column3, Column4
From TableA

如果 TableB 中存在 TableA.Column2 的值,我将如何修改上述查询以从 TableB 中选择 Column3?它还必须是 TableB.Column1 的最大值。

TableA
Column1 Column2 Column3 Column4
1        A      zebra     apple
2        C      lion      orange
3        R      giraffe   banana

TableB
Column1 Column2 Column3 Column4
1       Q       snail     rock
2       C       frog      stone
3       Z       giraffe   tree
4       C       walrus    limb

Result
Column2          Column3   Column4
A                zebra     apple
C                walrus    orange
R                giraffe   banana

它可能是这样的:

   Select TableA.Column2,Case When Exists(Select TableB.Column3 From Table3 
   Where        Table2.Column = TableB.Column2 ) Then Select Table2.Column3 Where   [Table2.Column1 is  max value], Column4
   From TableA
4

1 回答 1

3

下面是这样的:

select
    a.column2
    , case when b.column2 is not null then max(b.column3) else a.column3 end
    , a.column4
from
    tableA a
    left join tableB b
        on a.column2 = b.column2
group by
    a.column2
    , a.column3
    , a.column4
    , b.column2

如果这是一个家庭作业,正如问题所显示的那样,请研究代码以了解其原因和方式以及它的工作原理。

于 2013-08-06T20:03:55.843 回答