create view v_po_maximo_mfg 
as
select pl.ponum ,pl.polinenum 采购单行号,po.vendor,ltrim(STR(MONTH(po.orderdate)))+'/'+ltrim(str(DAY(po.orderdate)))+'/'+ltrim(str(YEAR(po.orderdate))),
       pl.storeloc,pl.orderqty ,pl.orderunit,pl.unitcost,pl.orderqty*pl.unitcost,
       pl.itemnum,left(i.description,((charindex('///',i.description))-1)),
       substring(i.description,((charindex('///',i.description))+3),len(i.description)),
       pl.tax1code,ltrim(STR(MONTH(pl.reqdeliverydate)))+'/'+ltrim(str(DAY(pl.reqdeliverydate)))+'/'+ltrim(str(YEAR(pl.reqdeliverydate))),'40502','Y','01'
       from poline pl left join po po  on pl.ponum=po.ponum
                      left join item i on pl.itemnum=i.itemnum   

解决方案 »

  1.   

    create view v_po_maximo_mfg(
    订单号,      --行号2
    订单行号,
    供应商,
    订货日期,
    仓库,
    采购数量,
    采购单位,
    单价,
    总成本,
    备件描述1,
    备件描述2,
    税代码,
    到货日期,
    总账科目,
    纳税,
    纳税类型     --行号17
    )as
    select 
    pl.ponum,         --行号20
    pl.polinenum 采购单行号,
    po.vendor,
    ltrim(STR(MONTH(po.orderdate)))+'/'+ltrim(str(DAY(po.orderdate)))+'/'+ltrim(str(YEAR(po.orderdate))),
    pl.storeloc,
    pl.orderqty,
    pl.orderunit,
    pl.unitcost,
    pl.orderqty*pl.unitcost,
    pl.itemnum,
    left(i.description,((charindex('///',i.description))-1)),substring(i.description,
    ((charindex('///',i.description))+3),len(i.description)),
    pl.tax1code,
    ltrim(STR(MONTH(pl.reqdeliverydate)))+'/'+ltrim(str(DAY(pl.reqdeliverydate)))+'/'+ltrim(str(YEAR(pl.reqdeliverydate))),
    '40502',
    'Y',
    '01'       --行号36
    from poline pl left join po po  on pl.ponum=po.ponum
              left join item i on pl.itemnum=i.itemnum   
    很显然
    视图定义的列的起止等号相减:        17- 2=15
    而后面的 select 中列的起止等号相减:36-20=16两个当然不相等