雇员表的SQL查询
我需要帮助来编写SQL以打印以下内容 表1:环境管理硕士雇员表的SQL查询,sql,vb.net,Sql,Vb.net,我需要帮助来编写SQL以打印以下内容 表1:环境管理硕士 Emp_ID FirstName ------------------------------ 1 John 2 Mark 3 Steve 表2:Emp_交易 Trans ID Emp_ID Payment_Date Paid_status ---------------------------------------------------------
Emp_ID FirstName
------------------------------
1 John
2 Mark
3 Steve
表2:Emp_交易
Trans ID Emp_ID Payment_Date Paid_status
---------------------------------------------------------
1 1 01/07/13 True
2 1 01/15/13 False
3 1 01/21/13 False
4 2 01/07/13 False
5 2 01/15/13 False
6 2 01/21/13 False
7 3 01/07/13 True
8 3 01/15/13 True
9 3 01/21/13 False
结果应该这样打印(最早的未付日期)
试试这个
select model1.Emp_ID ,
model1.FirstName ,
min(model2.Payment_Date) ,
model2.Paid_Status
from Emp_Master model1 ,Emp_Transaction model2
where model1.Emp_ID = model2.Emp_ID GROUP BY model1.Emp_ID, model2.FirstName;
您可以为此使用
Join
选择e.Emp\U ID、e.FirstName、min(t.Payment\U日期),
t、 Emp_Master e的付费状态,
Emp_事务t,其中e.Emp_ID=t.Emp_ID,t.Paid_Status='false'
我的第一个答案过于复杂了。这就是你所需要的
SELECT Emp_Master.Emp_ID Emp_ID, FirstName, MIN(Payment_Date) Payment_Date, Paid_Status
FROM Emp_Master
INNER JOIN Emp_Transaction ON Emp_Master.Emp_ID = Emp_Transaction.Emp_ID
WHERE Paid_Status = 'false'
GROUP BY Emp_Master.Emp_ID, FirstName, Paid_Status
请尝试此查询
SELECT e.Emp_ID, e.FirstName, min(Payment_Date), et.Paid_Status
FROM Emp_Master e, Emp_Transaction et
WHERE e.Emp_ID = et.Emp_ID AND et.Paid_Status= 'False'
GROUP BY e.Emp_ID, e.FirstName, et.Paid_Status
MIN(Payment_Date)状态为false,不是吗?@SenJacob Correct-修复了我的回答这没有获得最低付款日期您应该使用显式连接表示法。这也缺少付费状态它怎么会缺少付费状态?我没有抓到你。它不在选择列表中?太好了,非常感谢你的帮助,我拉扯了两个小时的头发。你错过了一个加入你的小组的机会。您还应该使用显式连接表示法
SELECT e.Emp_ID, e.FirstName, min(Payment_Date), et.Paid_Status
FROM Emp_Master e, Emp_Transaction et
WHERE e.Emp_ID = et.Emp_ID AND et.Paid_Status= 'False'
GROUP BY e.Emp_ID, e.FirstName, et.Paid_Status