问题描述:
对现有基本表:instock(入库)   outstock(出库)
把入库记录和出库记录做一个联合查询表:mindquery(此方法是一位达人:lsftest的),然后对mindquery 进行group by pro_name就是库存了!如果出库入库都正确,此方法比教准!代码如下
---------------------------------------------------------------------------------
SELECT  [instock].[pro_name] as name, [instock].[pro_sumin] FROM instock
UNION select  [outstock].[pro_name] as name, [outstock].[pro_sumout]*(-1) FROM outstock;
---------------------------------------------------------------------------------
现在的问题是:有相同的记录他就过去一条!!!!如何才能都过去?
例如表instock 中有
      AAA    1000
      AAA    1000
查询表中只有一条:AAA   1000

解决方案 »

  1.   

    然后对mindquery 进行group by pro_name就是库存了!
    -------------------------------------------------
    此句有误,应该是:对mindquery这个查询表数据字段再进行sum ,然后group by pro_name就是库存了
      

  2.   

    select * from tableA
    unoin all
    select * from tableb
      

  3.   

    忘了说了, 上面的表都在ACCESS中做!!!!不是在VB中写哦,我到这里来问是因为这里人气高!输入规则 我已经都用VB写好了:)
    就是才发现这个问题,所以 只要改这个查询表就行了,请大虾们指点
    --------------
      

  4.   

    我记得我给你的代码应该不是这样的你上面的代码应该改为:
    SELECT  [instock].[pro_name] as name, [instock].[pro_sumin] FROM instock
    UNION ALL
    select  [outstock].[pro_name] as name, [outstock].[pro_sumout]*(-1) FROM outstock;你漏了union后面那个all了。。
      

  5.   

    UNION 运算符
    将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。使用 UNION 组合两个查询的结果集的两个基本规则是: 所有查询中的列数和列的顺序必须相同。
    数据类型必须兼容。 
    语法
        { < query specification > | ( < query expression > ) }
            UNION [ ALL ]
            < query specification | ( < query expression > )
                [ UNION [ ALL ] < query specification | ( < query expression > )
                    [ ...n ] ] 参数
    < query_specification > | ( < query_expression > )是查询规范或查询表达式,用以返回与另一个查询规范或查询表达式所返回的数据组合的数据。作为 UNION 运算一部分的列定义可以不相同,但它们必须通过隐性转换实现兼容。下表说明数据类型与相应 (ith) 列的选项的比较规则。ith 列的数据类型 结果表中 ith 列的数据类型 
    非数据兼容类型(数据转换不由 Microsoft&reg; SQL Server&#8482; 隐性处理)。 SQL Server 返回的错误。 
    长度为 L1 和 L2 的固定长度 char。 长度与 L1 和 L2 中较长的那个相等的固定长度 char。 
    长度为 L1 和 L2 的固定长度 binary。 长度与 L1 和 L2 中较长的那个相等的固定长度 binary。 
    任一列或两列都是可变长度 char。 长度与为 ith 列指定的最大长度相等的可变长度 char。 
    任一列或两列都是可变长度 binary。 长度与为 ith 列指定的最大长度相等的可变长度 binary。 
    两列都是数字数据类型(如 smallint、int、float、money)。 与两列的最大精度相等的数据类型。例如,如果表 A 的 ith 列是 int 类型,表 B 的 ith 列是 float 类型,则 ith 列在结果表中的数据类型是 float,因为 float 比 int 更精确。 
    两列的描述都指定 NOT NULL。 指定 NOT NULL。 
    UNION指定组合多个结果集并将其作为单个结果集返回。ALL在结果中包含所有的行,包括重复行。如果没有指定,则删除重复行。
      

  6.   

    邮件收到以后如果有急事找我可以在csdn里给我留短信,一般我每天都会上去看看的但邮箱可能几个星期都不会看一下
      

  7.   

    哦!  知道了 谢谢!
    其实 我下班前自己添了ALL了,就是不敢肯定这样做对不对!?
    说实话 我水平是有点进步了但是 好象没有什么突破, 人很郁闷呢!