陳述句:
select a.姓名,a.身份證,專案GUID,專案NAME,死亡日期,max(substring(支付時間,1,8)) as 最后一次支付日期,sum(cast(支付金額 as float))as 涉及金額
from 發放明細 as a
join 死亡名單 as b on a.身份證=b.公民身份證號碼
where 專案GUID in (1017,1018,1207,1408) and substring(支付時間,1,6)>substring (支付日期,1,6)
group by a.姓名,a.身份證,專案GUID,專案NAME,死亡日期 order by 專案GUID;
問題1:為什么第一行有“a.”姓名,但是到專案GUID,專案NAME這里卻沒有“a.”;
問題2:猜測該陳述句執行順序是先按照“a.身份證=b.公民身份證號碼”篩選,然后按照“專案GUID in (1017,1018,1207,1408) and substring(支付時間,1,6)>substring (支付日期,1,6)”再篩選,最后執行group by和order by 陳述句。
uj5u.com熱心網友回復:
1. a應該是表名吧,之所以這樣是要與另一個表(死亡名單)區分開來,這里應該是選出死者的具體資訊,采用 a.身份證=b.公民身份證號碼,where后面的條件篩選出來;2. group by子句必須出現在where子句之后,order by子句之前。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/229514.html
標籤:開發
上一篇:參考磁區表磁區修剪不生效的原因?
下一篇:幫忙按要求做一下
