SELECT   LEFT(ST.BOM_NO,10) AS BOM_NO,ST.NAME,ST.PRD_NO, ST.PRD_MARK, NULL AS CUS_NO,ST.UNIT,SUM(ST.QTY*PT.QTY) AS QTY FROM  TF_POS PT   LEFT JOIN TF_BOM_SO ST ON ST.BOM_NO=PT.ID_NO
GROUP BY LEFT(ST.BOM_NO,10),ST.NAME,ST.PRD_NO,ST.PRD_MARK,ST.UNIT

解决方案 »

  1.   

    TF_POS  中是否有NULL的行呢?增加一个条件试试看 SELECT LEFT(ST.BOM_NO,10) AS BOM_NO,ST.NAME,ST.PRD_NO, ST.PRD_MARK, NULL AS CUS_NO,ST.UNIT,SUM(ST.QTY*PT.QTY) AS QTY FROM TF_POS PT LEFT JOIN TF_BOM_SO ST ON ST.BOM_NO=PT.ID_NO where ST.BOM_NO IS NOT NULL 
    GROUP BY LEFT(ST.BOM_NO,10),ST.NAME,ST.PRD_NO,ST.PRD_MARK,ST.UNIT 
      

  2.   

    左连接,当表TF_POS 的ID_NO字段在表TF_BOM_SO 中找不到对应的BOM_NO值时就会显示null可以看看左连接、右连接等。
      

  3.   

    不好意思,理解错了,是所有字段都是null,而不是表TF_BOM_SO这一部分的数据为null
      

  4.   

    如果表TF_POS 中有一行的数据是null,会导致这样的情况的。查查看。
      

  5.   

    另外 numeric 字段想让其为空值,除了用 null 个表示外,有没有办法让其字段内容显示为 空 
      

  6.   

    为0或用NULL,不能显示为空吧,除非把 numeric 字段都转换成字符型