假如表A:
ID     NUMS
001    30
001    50
001    20
002    20
002    80
...
如何用一動態SQL語句得到表B?
表B:
ID    NUMS
001   50
002   80
...

解决方案 »

  1.   

    insert into B(ID,NUMS) select ID,max(NUMS) from A group by ID
      

  2.   

    DECLARE @TB TABLE([ID] VARCHAR(3), [NUMS] INT)
    INSERT @TB 
    SELECT '001', 30 UNION ALL 
    SELECT '001', 50 UNION ALL 
    SELECT '001', 20 UNION ALL 
    SELECT '002', 20 UNION ALL 
    SELECT '002', 80SELECT ID,MAX(NUMS) AS NUMS
    FROM @TB 
    GROUP BY ID
    /*
    ID   NUMS
    ---- -----------
    001  50
    002  80
    */
      

  3.   

    select 
      ID,
      max(NUMS) as NUMS
    GROUP BY
      ID
      

  4.   


    select ID,max(NUMS) as NUMS from A GROUP BY ID
      

  5.   

    select * from A t where not exists(select 1 from A where id=t.id and nums>t.nums)
      

  6.   

    insert into B(ID,NUMS) select ID,max(NUMS) from A group by ID
    不知道是楼主的意思咱们没有理解还是什么的。感觉没有必要使用动态SQL的。