pDay                    pName  pPr _in _out
2008-08-13 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-12 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-12 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-10 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-10 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-09 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-09 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-08 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-08 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-13 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-12 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-12 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-10 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-10 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-09 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-09 00:00:00.000 一分厂 MOD5 NULL 出
2008-08-08 00:00:00.000 一分厂 MOD5 进 NULL
2008-08-08 00:00:00.000 一分厂 MOD5 NULL 出 这样可以吗

解决方案 »

  1.   

    SELECT MAX(ISNULL(MOD5_IN,'')) + ',' +  MAX(ISNULL(mod5_out,''))
    FROM TABLE
    GROUP BY pDay, pName,pProject
      

  2.   

    SELECT MAX(ISNULL(MOD5_IN,'')) + ',' +  MAX(ISNULL(mod5_out,''))
    FROM TABLE
    GROUP BY pDay, pName,pProject
      

  3.   

    不是的
    合并同列的条件相同的项比如第二行和第三行。根据条件,他们的最后两列可以进行合并
    结果如下2008-08-12 00:00:00.000 一分厂 MOD5 进 出求sql
      

  4.   

    IF OBJECT_ID('[TB]') IS NOT NULL DROP TABLE [TB] 
     GO 
    CREATE TABLE [TB]([PDAY] VARCHAR(10),[PNAME] VARCHAR(10),[PPR] VARCHAR(10),[_IN] VARCHAR(10),[_OUT] VARCHAR(10))
    INSERT [TB] SELECT '2008-08-13','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-12','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-12','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-10','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-10','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-09','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-09','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-08','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-08','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-13','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-12','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-12','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-10','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-10','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-09','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-09','一分厂','MOD5',NULL,'出'
    UNION ALL SELECT '2008-08-08','一分厂','MOD5','进',NULL
    UNION ALL SELECT '2008-08-08','一分厂','MOD5',NULL,'出'
    GOSELECT PDAY, PNAME,PPR,MAX(ISNULL([_IN],'')) [_IN] , MAX(ISNULL([_OUT],'')) [_OUT]
    FROM TB
    GROUP BY PDAY, PNAME,PPR
    /*
    PDAY       PNAME      PPR        _IN        _OUT
    ---------- ---------- ---------- ---------- ----------
    2008-08-08 一分厂        MOD5       进          出
    2008-08-09 一分厂        MOD5       进          出
    2008-08-10 一分厂        MOD5       进          出
    2008-08-12 一分厂        MOD5       进          出
    2008-08-13 一分厂        MOD5       进          (5 行受影响)
    */
      

  5.   


    SELECT PDAY, PNAME,PPR,MAX(ISNULL([_IN],'')) [_IN] , MAX(ISNULL([_OUT],'')) [_OUT]
    FROM TB
    GROUP BY PDAY, PNAME,PPR