我的查询是我有两个表,其中一个sec_users用以下字段调用:
sec_users
pk_user, name, days_available
另一个solicitud带有以下字段的呼叫:
solicitud
pk_solicitud, fk_empleado, n_dias
当fk_empleado表solicitud是pk_user对的外键sec_users表
fk_empleado
pk_user
好吧,我有一个小报告,其中显示了每个用户剩余的空闲天数,但我也想向您显示并以相同的查询显示该用户所请求的天数
例如,休假24天的user1创建一个应用程序,并要求4个休息日和另外10天。除了剩余的24-4-10 = 14天的休息日之外,我还希望您显示给我,您还必须告诉我您已经使用的天数:24-14 =消耗的天数为10。我有以下代码,但它给了我我不想要的数字:
SELECT u.pk_user, u.dias_disponibles - sum(s.n_diassolicitados) AS dias_libres, (SELECT SUM(N_DIASSOLICITADOS) as dias_disfrutados FROM solicitud) FROM sec_users u, solicitud s WHERE s.fk_empleado = u.pk_user GROUP BY u.pk_user
此功能向我展示了这一点:
Usuario dias_libres dias_disfrutados ============== ============== ============== Usuario 1 10 79
您必须向我展示:
Usuario Dias libres Dias disfrutados ============== ============== ============== Usuario 1 10 14
因为它不显示。
我怀疑您想要:
SELECT u.pk_user, (u.dias_disponibles - COALESCE(dias_disfrutados, 0)) AS dias_libres, COALESCE(dias_disfrutados, 0) FROM (SELECT u.*, (SELECT SUM(N_DIASSOLICITADOS) FROM solicitud s WHERE s.fk_empleado = u.pk_user ) as dias_disfrutados FROM sec_users u ) u;
笔记:
FROM
JOIN