ALTER proc W_GetNowMission @Begintm as datetime,@Endtm as datetime
as
(SELECT CASES.CASEID,
CASESTAT.DSC AS STATUS,
CASES.CRTM,CONTACT.NAME,CONTACT.ADDRESS,contact.allphn,HSINFO.DSC AS HOUSEGROUP,CASES.BRIEFDSC NOTE
FROM CASES
LEFT JOIN CONTACT ON CONTACT.CONTACTID=CASES.CONTACTID
LEFT JOIN HSINFO ON HSINFO.ID=CONTACT.HOUSEGROUP AND TID='HOUSEGROUP'
LEFT JOIN CASESTAT ON CASESTAT.CASESTATID=CASES.STATUS
WHERE (cases.STATUS=34 OR CASES.STATUS=32 or cases.status=0)
and cases.casetypeid<>'ts'
AND CASES.CRTM>=@Begintm
AND CASES.CRTM<=@Endtm
and cases.caseid not in (select caseid from casenote group by caseid))
union
(SELECT CASES.CASEID,
CASESTAT.DSC AS STATUS,
CASES.CRTM,CONTACT.NAME,CONTACT.ADDRESS,contact.allphn,HSINFO.DSC AS HOUSEGROUP,CASES.BRIEFDSC NOTE
FROM CASES
LEFT JOIN CONTACT ON CONTACT.CONTACTID=CASES.CONTACTID
LEFT JOIN HSINFO ON HSINFO.ID=CONTACT.HOUSEGROUP AND TID='HOUSEGROUP'
LEFT JOIN CASESTAT ON CASESTAT.CASESTATID=CASES.STATUS
left join complete_non on complete_non.caseid=cases.caseid
WHERE (cases.status=41 or cases.status=43)
and cases.casetypeid<>'ts'
AND complete_non.mdtm>=@Begintm
AND complete_non.mdtm<=@Endtm
and cases.caseid not in (select caseid from casenote group by caseid))
union
(SELECT CASES.CASEID,
CASESTAT.DSC AS STATUS,
CASES.CRTM,CONTACT.NAME,CONTACT.ADDRESS,contact.allphn,HSINFO.DSC AS HOUSEGROUP,CASES.BRIEFDSC NOTE
FROM CASES
LEFT JOIN CONTACT ON CONTACT.CONTACTID=CASES.CONTACTID
LEFT JOIN HSINFO ON HSINFO.ID=CONTACT.HOUSEGROUP AND TID='HOUSEGROUP'
LEFT JOIN CASESTAT ON CASESTAT.CASESTATID=CASES.STATUS
inner join
(select casenote.* from casenote inner join
(select caseid,MAX(mdtm) as mdtm from casenote where mdtm>= @Begintm and mdtm<=@Endtm group by caseid) temp2
on temp2.caseid=casenote.caseid and casenote.mdtm=temp2.mdtm and casenote.usrid in (select usrid from operator where defgrp='agent')) temp3
on temp3.caseid=cases.caseid
WHERE ((cases.status>12 and cases.status<99) or cases.status=0)
and cases.casetypeid<>'ts' )
union
(SELECT CASES.CASEID,
CASESTAT.DSC AS STATUS,
CASES.CRTM,CONTACT.NAME,CONTACT.ADDRESS,contact.allphn,HSINFO.DSC AS HOUSEGROUP,CASES.BRIEFDSC NOTE
FROM CASES
LEFT JOIN CONTACT ON CONTACT.CONTACTID=CASES.CONTACTID
LEFT JOIN HSINFO ON HSINFO.ID=CONTACT.HOUSEGROUP AND TID='HOUSEGROUP'
LEFT JOIN CASESTAT ON CASESTAT.CASESTATID=CASES.STATUS
left join complete_non on complete_non.caseid=cases.caseid
inner join
(select casenote.* from casenote inner join
(select caseid,MAX(mdtm) as mdtm from casenote group by caseid) temp2
on temp2.caseid=casenote.caseid and casenote.mdtm=temp2.mdtm
and casenote.usrid in (select usrid from operator where defgrp='diaodu')) temp3
on temp3.caseid=complete_non.caseid
WHERE (cases.status=41 or cases.status=43)
and cases.casetypeid<>'ts'
AND complete_non.mdtm>=@Begintm
AND complete_non.mdtm<=@Endtm
and complete_non.mdtm>temp3.mdtm
以下是我写的一句SQL语句(一个巨长存储过程的一句而已:)),用于公司的数据操作,长度还可以哦!
见笑了:
Select A.Work_Order,A.Part_Num,A.QCI_P_N,M.WO_Qty,A.This_Qty,N.Other_Qty,
M.WO_Qty-N.Other_Qty-A.This_Qty As Not_Qty ,
Model=
Case
when ((A.Part_Num like'Z07D%'Or A.Part_Num like'Z07E%' Or A.Part_Num like'K150%' Or A.Part_Num like'K147%') And A.QCI_P_N like '1Q16%' )Then 'Q16'
when ((A.Part_Num like 'Z0A2%' Or A.Part_Num like 'Z0A3%' or A.Part_Num like 'K163%' or A.Part_Num like 'K1649%' or A.Part_Num like 'K1650%' or A.Part_Num like 'K1671%' or A.Part_Num like 'K1693%' or A.Part_Num like 'K1698%' or A.Part_Num like 'K1687%' or A.Part_Num like 'K1715%' or A.Part_Num like 'K1716%' or A.Part_Num like 'K1722%' or A.Part_Num like 'K1738%' or A.Part_Num like 'K1763%') And A.QCI_P_N like '1Q16%' )Then 'Q16A'
when ((A.Part_Num like'Z07X%') And A.QCI_P_N like '1Q41%' )Then 'Q41'
when ((A.Part_Num Like 'Z0AF%' or A.Part_Num like 'K1651%' or A.Part_Num like 'K1673%' or A.Part_Num like 'K1694%' or A.Part_Num like 'K1723%' or A.Part_Num like 'K1767%') And A.QCI_P_N like '1Q41%' )Then 'Q41A'
End,
A.Country,A.Bundle_Ite
Into #TableInputCTONotebook
from #TempForInputCTONotebook A,
( Select Count(Production_Reference) As WO_Qty,Production_Reference from Tsestatu ---WO_Qty
where Production_Reference In (Select Work_Order from #TempForInputCTONotebook)
Group by Production_Reference) M,
( Select Count(A.PAL_SN) As Other_Qty,B.Production_Reference from PAL_FirstPTL A,Tsestatu B
where B.Production_Reference In (Select Work_Order from #TempForInputCTONotebook)
and A.TransDateTime Not between @TempstrFromDate+@TempstrFromTime and @TempstrToDate + @TempstrToTime
and A.PAL_SN=B.Serial_Number
Group by B.Production_Reference
Union All
Select '0' As Other_Qty,Work_Order from #TempForInputCTONotebook
where Work_Order Not In (
Select P.Production_Reference from (
Select Count(A.PAL_SN) As Other_Qty,B.Production_Reference from PAL_FirstPTL A,Tsestatu B
where B.Production_Reference In (Select Work_Order from #TempForInputCTONotebook)
and A.TransDateTime Not between @TempstrFromDate+@TempstrFromTime and @TempstrToDate + @TempstrToTime
and A.PAL_SN=B.Serial_Number
Group by B.Production_Reference
) P
)
) N
where A.Work_Order=M.Production_Reference
and A.Work_Order=N.Production_Reference
Order by Model