我不知道如何进行查询..... [英] i don't know how to make query.....

查看:103
本文介绍了我不知道如何进行查询.....的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个表.
一个是
截面表
____________

id名称类部分
1 sankar VI A
2盘点VI A
3 raja III C

第二个是
paid_table
_____________

id sectionid paid_amount余额
100 1 500 200
101 1 200 0
102 2 1000 500
103 2 200 300

我需要的是


名称平衡

101 0
103300


-------------------------------------------
我应该怎么做才能生成查询....

(我需要为VI类A部分学生提供最后一笔余额交易.)

i have two table.
one is
section table
____________

id name class section
1 sankar VI A
2 pandian VI A
3 raja III C

second one is
paid_table
_____________

id sectionid paid_amount Balance
100 1 500 200
101 1 200 0
102 2 1000 500
103 2 200 300

i need is


name balance

101 0
103 300


-------------------------------------------
what should i do for generate query....

( i need last transaction of balance for VI class A section student. )

推荐答案

就在我头顶,没有经过测试
Just off the top of my head, not tested
SELECT Name, Balance
FROM section
JOIN paid_table ON paid_table.sectionid = section.id
WHERE paid_table.id = (SELECT MAX(id) FROM paid_table WHERE sectionid = section.id)


您也可以这样编写:

You could also write it in this way:

SELECT Name, Balance FROM section, paid_table
WHERE paid_table.sectionid = section.id AND 
paid_table.id = (SELECT MAX(id) FROM paid_table WHERE sectionid = section.id)


我喜欢使用RANK()函数.
我已经成功地使用它提高了性能,尤其是当您必须处理非常大的表时.

I love to use the RANK() function.
I have been successful in improving performance using it, especially if you have to deal with very large tables.

SELECT t.Name, t.Balance
FROM
	(
	SELECT	s.Name AS Name
		, p.Balance As Balance
		, RANK() OVER (PARTITION BY s.name ORDER BY p.id DESC) as rowNum
	FROM section s
	INNER JOIN paid_table p
	ON p.sectionid = s.id
	) t
Where t.rowNum=1


这篇关于我不知道如何进行查询.....的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆