求sql

iLemon 2013-06-07 02:31:52
A表
----------
kind|total
----------
a | 10
b | 5
----------

B表
——————
kind|sell
——————
a |1
——————
a |2
------------
b |3
____________
b |1
____________

要求:
用一条sql查出
___________
种类|剩余
___________
a |7
___________
b |1
—————

另:
请推荐sql书籍
...全文
99 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
MrYangkang 2013-06-07
  • 打赏
  • 举报
回复


DECLARE @A TABLE 
(
kind VARCHAR(10), 
total INT
) 
DECLARE @B TABLE 
(
kind VARCHAR(10), 
sell INT
)   
INSERT INTO @A 
SELECT 'A', 10  UNION 
SELECT 'B', 5   
INSERT INTO @B 
SELECT 'A', 1  UNION 
SELECT 'A', 2  UNION 
SELECT 'B', 3  UNION 
SELECT 'B', 1    
SELECT A.kind,(total-sell)total from
@A A,
(
select kind,sum(isnull(sell,0))sell from @B group by kind
)B where A.kind = B.kind
菜鸟之GrowUP 2013-06-07
  • 打赏
  • 举报
回复
SQL书籍可以看 《Microsoft SQL Server 2005技术内幕》系列丛书
菜鸟之GrowUP 2013-06-07
  • 打赏
  • 举报
回复

DECLARE @A TABLE (kind VARCHAR(10), total INT)
DECLARE @B TABLE (kind VARCHAR(10), sell INT)

INSERT INTO @A
SELECT 'A', 10 
UNION SELECT 'B', 5

INSERT INTO @B
SELECT 'A', 1 
UNION SELECT 'A', 2 
UNION SELECT 'B', 3 
UNION SELECT 'B', 1

SELECT A.kind AS 种类, A.total - B.sell AS 剩余
FROM @A A, (SELECT kind, SUM(sell) AS sell FROM @B GROUP BY kind) B 
WHERE A.kind=B.kind
/*
种类         剩余
---------- -----------
A          7
B          1

(2 行受影响)
*/

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧