我正在尝试编写一个查询来获取Moodle中课程文件的名称和路径,但似乎我永远无法做到这一点.以下是我现在所做的事情,对此的任何帮助都非常感谢:)
SELECT SOURCE file,
course,
contenthash path
FROM mdl_files
INNER JOIN mdl_context ON mdl_files.contextid = mdl_context.id
JOIN mdl_resource ON instanceid = mdl_resource.id
WHERE course=
(SELECT id
FROM mdl_course
WHERE fullname="XXXX")
Run Code Online (Sandbox Code Playgroud) 我想将以下数据从sub_prd_id. 但在此之前,我需要max 的 订单数据created_at。
我写了如下查询。
select * FROM prd_data group by sub_prd_id order by created_at desc
Run Code Online (Sandbox Code Playgroud)
但是这个查询没有返回我需要的。例如,根据以下数据,查询执行后,结果应如下所示,
id name sub_prd_id created_at
4 Grape 10 2013-04-28 03:11:55
6 Banana 11 2013-04-28 03:23:14
7 Pineapple 12 2013-04-28 03:23:44
Run Code Online (Sandbox Code Playgroud)
这是带有数据的表结构。
id name sub_prd_id created_at
2 Apple 10 2013-04-28 03:04:51
3 Orange 10 2013-04-28 03:08:19
4 Grape 10 2013-04-28 03:11:55
5 Mango 11 2013-04-28 03:22:48
6 Banana 11 2013-04-28 03:23:14
7 Pineapple 12 2013-04-28 03:23:44
Run Code Online (Sandbox Code Playgroud) 我有一个varchar(50)行,它有一个唯一约束,我想得到一个新插入的下一个唯一编号但是有一个给定的前缀.
我的行看起来像这样:
ID (varchar)
00010001
00010002
00010003
00080001
Run Code Online (Sandbox Code Playgroud)
因此,如果我想从前缀"0001"获得下一个unqiue号码,那么它将是"00010004",但如果我希望它为前缀"0008",那么它将是"00080002".
此表中将有超过1百万个条目.有没有办法让Oracle 11执行相当快的这种操作?
我知道这个设置完全是疯了但这是我必须要处理的.我不能创建任何新表等.
我试图通过查询获得学生的分数和成绩,但我无法计算出联接.这是非常复杂的数据库.有没有人以前做过?
下面的查询(由我自己修改的表)适用于某些学生,但不适用于其他学生,因此我需要一个具有原始表结构的正确的.
谢谢
我的错误查询
SELECT mdl_grade_items.id AS ItemID,
mdl_course.shortname AS CourseShortname,
mdl_grade_items.itemname AS ItemName,
mdl_grade_items.grademax AS ItemGradeMax,
mdl_grade_items.aggregationcoef AS ItemAggregation,
mdl_grade_grades.finalgrade AS FinalGrade,
mdl_user.username AS StudentID,
mdl_user.id
FROM mdl_grade_items
INNER JOIN mdl_grade_grades
ON mdl_grade_items.id = mdl_grade_grades.itemid
INNER JOIN mdl_role_assignments
ON mdl_grade_grades.userid = mdl_role_assignments.userid
AND mdl_grade_items.courseid = mdl_role_assignments.mdlcourseid
INNER JOIN mdl_course
ON mdl_course.id = mdl_grade_items.courseid
INNER JOIN mdl_user
ON mdl_user.id = mdl_role_assignments.userid
WHERE mdl_grade_items.courseid = '2864'
AND mdl_user.username = '123456789'
Run Code Online (Sandbox Code Playgroud) 我有以下数据:
ID Column1 Column2 Column3 Column4 Column5
001 A C D A B
002 A D A B A
003 B K Q C Q
004 A K E E B
Run Code Online (Sandbox Code Playgroud)
我想在视图中创建一个新列,该列给出每行 5 个源列中“A”的计数。结果应该是这样的:
ID Column1 Column2 Column3 Column4 Column5 SumOfA
001 A C D A B 2
002 A D A B A 3
003 B K Q C Q 0
004 A K E E B 1
Run Code Online (Sandbox Code Playgroud)
我在这里看到了几个示例,但它们返回跨记录的“A”实例 - 我想要跨列的“A”计数,而不是跨行聚合。有什么想法吗?
我有以下结构:
TradeNo | OrderNo | Buy_Sell |
1001 2001 Buy
1002 2002 Buy
1001 2001 Sell
Run Code Online (Sandbox Code Playgroud)
在这个特殊的结构中,我想找出TradeNo和OrderNo的独特组合的双重记录.
我尝试了以下查询:
SELECT t1.tradeno,
t1.orderno,
t2.tradeno,
t2.orderno,
t1.Buy_sell,
t2.Buy_sell
FROM tradeFile t1,
tradeFile t2
WHERE t1.TradeNo=t2.TradeNo
AND t1.Orderno=t2.orderno
Run Code Online (Sandbox Code Playgroud)
这个查询,返回我的两份单记录.但我想重复记录.如上表所示,第一和第二记录以tradeno和orderno的唯一组合重复,如[1001和2001].
请帮帮我.
我想知道如何在一个查询中在同一个表中交换同一列的值.
例如,Table如下所示.
SerialNo Status
1 Married
2 Single
3 Married
Run Code Online (Sandbox Code Playgroud)
现在,结果我想要的是"结婚"应该转换成单身,"单身"应该转换成结婚.
预期:
SerialNo Status
1 Single
2 Married
3 Single
Run Code Online (Sandbox Code Playgroud)
这应该只在一个查询中完成.是否可以使用单个查询执行此操作?如果有,请帮助我.
提前致谢.
表格样本:
ID Code
2324 1
2324 2
2325 1
2326 1
2326 2
Run Code Online (Sandbox Code Playgroud)
我想得到只有代码'1'而不是代码'2'的id,所以结果就是
2325 1
Run Code Online (Sandbox Code Playgroud)
由于其他人有代码1和2
我试过了
SELECT * FROM TABLE
WHERE CODE != 1 AND CODE = 2
Run Code Online (Sandbox Code Playgroud)
但是这只返回代码2的任何id,无论id是否也有代码1
我正在使用小型商业软件并导入到SQL Server.但有数字:
75739
76910
73105
75821
75245
75605
77169
73265
75611
74073
77012
Run Code Online (Sandbox Code Playgroud)
这代表我想的日期.
如何将这些数字转换为日期YYYY-MM-DD和YYYYMMDD?