表A结构是
工号  姓名   基本工资
1     张三   1000
2     李四   800
3     王五   1200
表B结构是
工号  计件工资
1     2000
2     1500
datagridview我想做成这样
工号  姓名  基本工资  计件工资1    张三  1000     2000
2    李四  800      1500
3    王五  1200     0 
也就是说,加以自定义列,查询表A跟表B工号相同员工的计件工资,如果有就显示,如果没有就设置为0,相当于把字段设置成整形就行!
请问该如何去写语句

解决方案 »

  1.   

    select a.*,'计件工资'=isnull(b.计件工资,0)
    from 表A a left join 表B b
         on a.工号=b.工号
      

  2.   

    我靠,1楼太帅了,我考虑了半个小时的问题,被1句SQL语句搞定,哎,失望!
    试验正确,马上给分!
      

  3.   

    declare @a table(工号 int,姓名 varchar(6),基本工资 numeric(12,2))
    insert @a select 1,'张三',1000
    union all select 2,'李四',800
    union all select 3,'王五',1200declare @b table(工号 int,计件工资 numeric(12,2))
    insert @b select 1,2000
    union all select 2,1500
    select a.工号,a.姓名,'基本工资'=isnull(a.基本工资,0),
    '计件工资'=isnull(b.计件工资,0),
    '合计'=isnull(a.基本工资,0)+isnull(b.计件工资,0)
    from @a a left join @b b on a.工号=b.工号
    /*
    所影响的行数为 3 行)
    (所影响的行数为 2 行)工号          姓名     基本工资           计件工资           合计              
    ----------- ------ -------------- -------------- --------------- 
    1           张三     1000.00        2000.00        3000.00
    2           李四     800.00         1500.00        2300.00
    3           王五     1200.00        .00            1200.00(所影响的行数为 3 行)*/
      

  4.   

    select  基本工资,计件工资,(基本工资+计件工资) as 总工资 from 表名。
    哥们儿,没你这样的赶紧把人家的帐给结了
    一把是一把!
      

  5.   

    估计楼主看不懂 1楼写的 存储过程  sorry
      

  6.   

    select a.*,'计件工资'=isnull(b.计件工资,0),'合计'=(a.基本工资+isnull(b.计件工资,0))
    from 表A a left join 表B b
         on a.工号=b.工号看看可以不
    如果基本公司是 var  可以用 cast 函数转化下