我有以下表格结构:
1-课程(course_id、course_nam、语言、course_price、create_date、average_rating、course_description、certifica_price、course_creator_id)
2-学生(学生证、钱包)
3-折扣(折扣id、折扣课程id、允许的许可课程id、开始日期、结束日期、百分比)
4-报名(student_id、course_id、purchased_price、purchase_date)
我想写一个查询,它将返回id为$person\u id的课程创建者的每门课程以及以下内容:
1-如果该课程有折扣,且当前日期介于该折扣的开始日期和结束日期之间,则课程价格将根据百分比降低。
2-注册该课程的学生人数。如果没有这样的学生,0。
3-课程id、课程名称、平均评分、折扣百分比和价格。
我有以下疑问
SELECT C.course_id, C.course_name, C.average_rating, total_student,
D.percentage, (CASE WHEN CURRENT_DATE >= D.start_date AND
CURRENT_DATE < D.end_date AND D.is_allowed
THEN C.course_price * (( 100 - D.percentage ) / 100)
ELSE C.course_price END) as price
FROM course C LEFT OUTER JOIN discount D ON
C.course_id = D.discounted_course_id,
(SELECT course_id, COUNT(student_id) AS total_student
FROM enrolls
WHERE course_id IN (SELECT course_id
FROM course
WHERE course_creator_id = '$person_id')
GROUP BY course_id) course_student
WHERE course_student.course_id = C.course_id
当学生、折扣、注册表为空时,查询不返回任何内容。我希望它返回课程信息total_student=0(或空),百分比=0(或空,没关系),价格(课程的原始价格)。
试试做这样的事
SELECT
C.course_id, C.course_name, C.average_rating, total_student,
D.percentage, (CASE WHEN CURRENT_DATE >= D.start_date AND
CURRENT_DATE < D.end_date AND D.is_allowed THEN C.course_price * (( 100 - D.percentage ) / 100)
ELSE C.course_price END) as price
FROM course C
LEFT OUTER JOIN discount D
ON C.course_id = D.discounted_course_id
LEFT JOIN (
SELECT course_id, COUNT(student_id) AS total_student
FROM enrolls
WHERE course_id IN (
SELECT course_id
FROM course
WHERE course_creator_id = '$person_id')
ON C.course_id = course_student.course_id
GROUP BY course_id) course_student
我有下面的SQL查询,我在flink工作中使用。< code>mysql_table是使用JDBC连接器创建的,而< code>kafa_source表是从传入的kafka流创建的。 我在两者之间执行时态连接,当我在Flink的sql-client CLI中检查时,运行良好(用< code>flink-faker测试)。内部查询工作得非常好,并且正在打印结果。有人能帮助我找出这个问题吗? 编辑:我
问题内容: 我有一堆应聘者,他们有一些或多个工作,每个人都在公司工作,并且使用了一些技能。 坏的ascii艺术如下: 这是我的数据库: 。 。 。 。 这是我对查询的尝试(请注意,我打算将通配符更改为字段名称;我只是想使某些功能生效): HediSql说 查询出了什么问题?我希望从不良的ascii艺术中可以清楚地知道我要达到的目标。 (此外,它对我连接表的顺序是否有任何速度差异?我将担心新的MyS
我正在查询SQL数据库,但由于某些原因,结果项会随机返回。这是我的密码: searchFriendEmailArrayNew是一个电子邮件地址数组,因此当我查询数据库表时,它会使用电子邮件来查找该用户。数组始终保持一致且顺序相同: user1@email.com 查询总是按照这个顺序进行的。 然后,我查询用户的所选字段,在本例中,我查询的是“isriding”字段。此字段是返回true或false
我正在使用Android的纵隔检索我用我的应用程序录制的视频文件的持续时间/日期。它对旧文件很好,我记录的最新文件确实返回空(不是空)光标。我不明白为什么会发生这种情况,是纵隔没有立即更新还是我下面使用的代码有问题?谢谢你的帮助!
问题内容: 如果我有一个工作表,例如: 我想要一个查询,该查询将按日期对它们进行分组,并计算该日期的每个状态和总状态的发生率。 这给了我 我现在想将其压缩为每个唯一日期的一行,并为每个日期安排某种多列布局。一个约束是5个可能的单词中的任何一个,但每个日期可能没有每个状态之一。另外,我希望每天总计所有状态。因此,所需的结果将如下所示: 列可以通过类似的方式动态构建 对于不包含任何此类状态的日期,结果