表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语句应该怎么写啊?
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语句应该怎么写啊?
-- 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 行受影响)
*/