有两个表A和B
A表:
ID   H
1    200
2    300
3    989
4    785
5    657
6    948B表:
ID   Q
1    154
3    657
5    754现在需要建立一个视图C,包括这两个表
视图C
ID   H      Q
1    200    154
2    300
3    989    657
4    785
5    657    754
6    948不知视图语句应该怎么写,请高手指点!

解决方案 »

  1.   

    CREATE VIEW v_T
    AS
        SELECT
            A.ID,
            A.H,
            B.Q
        FROM tbA AS A
            LEFT JOIN
                tbB AS B
              ON A.ID=B.ID
    GO
      

  2.   

    ---------------------------------
    --  Author: liangCK 小梁
    --  Date  : 2008-11-17 14:43:06
    ---------------------------------
     
    --> 生成测试数据: [tbA]
    IF OBJECT_ID('[tbA]') IS NOT NULL DROP TABLE [tbA]
    CREATE TABLE [tbA] (ID INT,H INT)
    INSERT INTO [tbA]
    SELECT 1,200 UNION ALL
    SELECT 2,300 UNION ALL
    SELECT 3,989 UNION ALL
    SELECT 4,785 UNION ALL
    SELECT 5,657 UNION ALL
    SELECT 6,948
     
    --> 生成测试数据: [tbB]
    IF OBJECT_ID('[tbB]') IS NOT NULL DROP TABLE [tbB]
    CREATE TABLE [tbB] (ID INT,Q INT)
    INSERT INTO [tbB]
    SELECT 1,154 UNION ALL
    SELECT 3,657 UNION ALL
    SELECT 5,754--SQL查询如下:GOCREATE VIEW v_T
    AS
        SELECT
            A.ID,
            A.H,
            B.Q
        FROM tbA AS A
            LEFT JOIN
                tbB AS B
              ON A.ID=B.ID
    GOSELECT * FROM v_TGO
    DROP TABLE tbA,tbB
    DROP VIEW v_T/*
    ID          H           Q
    ----------- ----------- -----------
    1           200         154
    2           300         NULL
    3           989         657
    4           785         NULL
    5           657         754
    6           948         NULL(6 行受影响)
    */
      

  3.   

    ---------------------------------
    --  Author: liangCK 小梁
    --  Date  : 2008-11-17 14:43:06
    ---------------------------------
     
    --> 生成测试数据: [tbA]
    IF OBJECT_ID('[tbA]') IS NOT NULL DROP TABLE [tbA]
    CREATE TABLE [tbA] (ID INT,H INT)
    INSERT INTO [tbA]
    SELECT 1,200 UNION ALL
    SELECT 2,300 UNION ALL
    SELECT 3,989 UNION ALL
    SELECT 4,785 UNION ALL
    SELECT 5,657 UNION ALL
    SELECT 6,948
     
    --> 生成测试数据: [tbB]
    IF OBJECT_ID('[tbB]') IS NOT NULL DROP TABLE [tbB]
    CREATE TABLE [tbB] (ID INT,Q INT)
    INSERT INTO [tbB]
    SELECT 1,154 UNION ALL
    SELECT 3,657 UNION ALL
    SELECT 5,754--SQL查询如下:GOCREATE VIEW v_T
    AS
        SELECT
            A.ID,
            A.H,
            ISNULL(CAST(B.Q AS VARCHAR),'') AS Q
        FROM tbA AS A
            LEFT JOIN
                tbB AS B
              ON A.ID=B.ID
    GOSELECT * FROM v_TGO
    DROP TABLE tbA,tbB
    DROP VIEW v_T/*
    ID          H           Q
    ----------- ----------- ------------------------------
    1           200         154
    2           300         
    3           989         657
    4           785         
    5           657         754
    6           948         (6 行受影响)
    */
      

  4.   

    select A.ID,H,ISNULL(RTRIM(Q),'') AS Q FROM A left join B ON A.ID=B.ID
      

  5.   

    select a.* , isnull(b.Q , 0) q from a left join b on a.id = b.id
      

  6.   

    create table a(ID int, H int)
    insert into a values(1 ,   200 )
    insert into a values(2 ,   300 )
    insert into a values(3 ,   989 )
    insert into a values(4 ,   785 )
    insert into a values(5 ,   657 )
    insert into a values(6 ,   948 )
    create table b(ID int, Q int)
    insert into b values(1 ,   154 )
    insert into b values(3 ,   657 )
    insert into b values(5 ,   754 )select a.* , isnull(cast(b.Q as varchar), '') q from a left join b on a.id = b.iddrop table a , b/*
    ID          H           q                              
    ----------- ----------- ------------------------------ 
    1           200         154
    2           300         
    3           989         657
    4           785         
    5           657         754
    6           948         (所影响的行数为 6 行)*/
      

  7.   

    create table a(ID int, H int)
    insert into a values(1 ,   200 )
    insert into a values(2 ,   300 )
    insert into a values(3 ,   989 )
    insert into a values(4 ,   785 )
    insert into a values(5 ,   657 )
    insert into a values(6 ,   948 )
    create table b(ID int, Q int)
    insert into b values(1 ,   154 )
    insert into b values(3 ,   657 )
    insert into b values(5 ,   754 )--search
    select a.* , isnull(cast(b.Q as varchar), '') q from a left join b on a.id = b.id--create view
    go
    create view my_view as select a.* , isnull(cast(b.Q as varchar), '') q from a left join b on a.id = b.id
    goselect * from my_viewdrop table a , b
    drop view my_view/*
    ID          H           q                              
    ----------- ----------- ------------------------------ 
    1           200         154
    2           300         
    3           989         657
    4           785         
    5           657         754
    6           948         (所影响的行数为 6 行)*/
      

  8.   

    liangCK,表A和表B里面的数据是动态变化的
      

  9.   

    数据是变动的,语句是不动的.我们是按照你的给出的测试语句写的.你只需要把查询语句或创建view的语句拿去用就行了.