表A     机具地址  数量      审核状态   日期
         00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
00004 1 未审核 2010-4-29
 表B     单据号   货号     日期     机具地址    标识
        000001    HY001   2010-4-29   00004      1
         想要的结果:
         单据号     货号      日期    机具地址    标识   汇总数量
         000001    HY001   2010-4-29   00004        1       9       SQL语句应该怎么写啊?

解决方案 »

  1.   

    select *,汇总数量=(select sum(数量) from A where 机器地址=B.机器地址) from b
      

  2.   

    --------------------------------------------------------------------------
    --  Author : htl258(Tony)
    --  Date   : 2010-04-29 19:15:42
    --  Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
    --          Jul  9 2008 14:43:34 
    --          Copyright (c) 1988-2008 Microsoft Corporation
    --          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
    --  Blog   : http://blog.csdn.net/htl258
    --------------------------------------------------------------------------
    --> 生成测试数据表:aIF NOT OBJECT_ID('[a]') IS NULL
    DROP TABLE [a]
    GO
    CREATE TABLE [a]([机具地址] NVARCHAR(10),[数量] INT,[审核状态] NVARCHAR(10),[日期] DATETIME)
    INSERT [a]
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29' UNION ALL
    SELECT '00004',1,N'未审核',N'2010-4-29'
    GO
    --SELECT * FROM [a]--> 生成测试数据表:bIF NOT OBJECT_ID('[b]') IS NULL
    DROP TABLE [b]
    GO
    CREATE TABLE [b]([单据号] NVARCHAR(10),[货号] NVARCHAR(10),[日期] DATETIME,[机具地址] NVARCHAR(10),[标识] INT)
    INSERT [b]
    SELECT '000001','HY001',N'2010-4-29','00004',1
    GO
    --SELECT * FROM [b]-->SQL查询如下:
    select *,汇总数量=(select sum(数量) from A where [机具地址]=B.[机具地址]) from b
    /*
    单据号        货号         日期                      机具地址       标识          汇总数量
    ---------- ---------- ----------------------- ---------- ----------- -----------
    000001     HY001      2010-04-29 00:00:00.000 00004      1           9(1 行受影响)
    */