表1:
姓名 类别 数量
张三 AAAA 10
张三 8
李四 BBBB 5
张三 AAAA 5
李四 BBBB 10表2:
张三 AAAA 25
张三 10
李四 BBBB 15用姓名+类别作为条件,希望比较表1和表2的差额,得出表3:
张三 AAAA -5
张三 -2
李四 BBBB 10实际用ON条件,因为表1和表2的第二行类别为NULL,所以得不出表3的第二行,实际结果是:
张三 AAAA -5
李四 BBBB 10sql语句是insert into 表3 select 表1.姓名,表1.类别,sum(表1.数量-表2.数量) as 数量 from 表1 inner join 表2 ON 表1.姓名=表2.姓名 AND 表1.类别=表2.类别请问如果希望区分“张三 AAAA”和“张三 ”,该如何写SQL语句。感谢!
姓名 类别 数量
张三 AAAA 10
张三 8
李四 BBBB 5
张三 AAAA 5
李四 BBBB 10表2:
张三 AAAA 25
张三 10
李四 BBBB 15用姓名+类别作为条件,希望比较表1和表2的差额,得出表3:
张三 AAAA -5
张三 -2
李四 BBBB 10实际用ON条件,因为表1和表2的第二行类别为NULL,所以得不出表3的第二行,实际结果是:
张三 AAAA -5
李四 BBBB 10sql语句是insert into 表3 select 表1.姓名,表1.类别,sum(表1.数量-表2.数量) as 数量 from 表1 inner join 表2 ON 表1.姓名=表2.姓名 AND 表1.类别=表2.类别请问如果希望区分“张三 AAAA”和“张三 ”,该如何写SQL语句。感谢!
解决方案 »
- VB问题,用enumwindows枚举窗口的顺序问题
- SendMessage问题,急!急!
- 请问如何获取datagrid具体某一行某一列的值
- ????在父窗口里,通过菜单打开若干个子窗口后,再次通过菜单打开已经加载的窗口时,如何使该窗口处于活动状态?
- 突然发现我得了7分的专家分,可见CSDN的专家分烂到什么程度!
- 怎样在一个User Control上显示MS Graph图表控件
- 提取网页上一个ip地址,怎么样能使其在提取的同时在ie中打开。谢谢
- 请教 关于 My.Computer.Network.DownloadFile 的假死 跟 form1跟 form2连接的问题
- 关于串口通讯的问题,高手们救救急,很奇怪的问题。
- 如何进行目录选择
- VBA 能否在 listbox 上敲回车响应按钮的单击事件
- 连接数据库问题
drop table #T1
Go
Create table #T1([姓名] nvarchar(2),[类别] nvarchar(4),[数量] int)
Insert #T1
select N'张三',N'AAAA',10 union all
select N'张三',null,8 union all
select N'李四',N'BBBB',5 union all
select N'张三',N'AAAA',5 union all
select N'李四',N'BBBB',10
Go
--> -->
if not object_id('Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([姓名] nvarchar(2),[类别] nvarchar(4),[数量] int)
Insert #T2
select N'张三',N'AAAA',25 union all
select N'张三',null,10 union all
select N'李四',N'BBBB',15
Go
select
a.[姓名],a.[类别],a.[数量]-b.[数量] as [数量]
from
(Select [姓名],[类别]=isnull([类别],''),sum([数量]) as [数量] from #T1 group by [姓名],isnull([类别],'')) as a
inner join #T2 as b on a.[姓名]=b.[姓名] and a.[类别]=isnull(b.[类别],'')/*
姓名 类别 数量
李四 BBBB 0
张三 -2
张三 AAAA -10
*/