/* From the program - 23-07-2005 */ qryStringList.Add('SELECT ''Cust_ID'' = CASE'); qryStringList.Add(' WHEN Owner1 + CallSubject1 = ''FRTRADIO BASE EQ'' THEN ''FRT'''); qryStringList.Add(' WHEN CallSubject1 = ''RADIO BASE EQ'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''NXB'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CGE'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CME'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CDF'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CAA'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CDM'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CCM'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CJD'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CTT'' THEN ''MEG'''); qryStringList.Add(' ELSE Owner1'); qryStringList.Add(' END, ''Bill'' = CASE'); qryStringList.Add(' WHEN CallSubject1 LIKE ''CENTRACOM'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''SECURITY'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''TELMAX 21'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''TELMAX'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''FLEXCOMMS'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''QUETZAL'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE T/T'' THEN 0'); // Change 21-06-2005 as requested by RLD. qryStringList.Add(' WHEN CallSubject1 LIKE ''PABX EXCHANGE'' THEN 0'); // qryStringList.Add(' WHEN ((CallSubject1 LIKE ''EXCHANGE'') AND '+ // '(CallSubject2 LIKE ''PABX SYSTEM'')) THEN 0'); // end of change 21-06-2005. qryStringList.Add(' WHEN ((CallSubject1 LIKE ''LOCO-LTR FAULT'') AND '+ '(CallSubject2 LIKE ''LOCAL T/RADIO'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''RADIO PORTABLE/FIXED'') AND '+ '(CallSubject2 LIKE ''TWO WAY RADIO'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''SEPAC%'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''TTB-LOCO FAULT'') AND '+ '(CallSubject2 LIKE ''NUTR TTBR'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''FLEX COMM TERM'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''POST PHONE'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''MDC CONSOLE'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''SHUNT RADIO'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''PCM LINK'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''ASW - COMMS'') AND '+ '(Owner1 LIKE ''FRT'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''BASE STN EQUIP'') AND '+ // '((Owner1 LIKE ''FRT'') OR (Owner1 LIKE ''ART''))) THEN 0'); '(Owner1 IN (''FRT'', ''ART'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); // qryStringList.Add(' WHEN ((CallSubject1 LIKE ''BASE STN EQUIP'') AND '+ // '(Owner1 LIKE ''ART'')) THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''VOICEMAIL'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE D-TERM'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE-IQUARTZ'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE EXICOM'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE QMASTER'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''SECURITY'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''ETAS'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''LTR RADIO (End to End)'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''SMR RADIO'' THEN 0'); qryStringList.Add(' WHEN Owner1 LIKE ''VRT'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''%LOCO%'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''RADIO DYNON'' THEN 0'); qryStringList.Add(' ELSE 1'); qryStringList.Add(' END, qry_all.*'); qryStringList.Add('FROM (SELECT ''Owner1'' = CASE Assign'); qryStringList.Add(' WHEN ''HILLSIDE'' THEN ''CME'''); qryStringList.Add(' WHEN ''BAYSIDE'' THEN ''CME'''); qryStringList.Add(' WHEN ''FREIGHT VICTORIA'' THEN ''FRT'''); qryStringList.Add(' WHEN ''FREIGHT AUSTRALIA'' THEN ''FRT'''); qryStringList.Add(' WHEN ''V/LINE PASS'' THEN ''VLP'''); qryStringList.Add(' WHEN ''ARTC'' THEN ''ART'''); qryStringList.Add(' ELSE Assign'); qryStringList.Add(' END, QuetzalFaults.*'); qryStringList.Add('FROM (SELECT'); qryStringList.Add('''Assign'' = CASE'); qryStringList.Add(' WHEN LEN(RTRIM(tTrain.TrainOwner)) > 0 '+ 'THEN tTrain.TrainOwner'); qryStringList.Add(' WHEN LEN(RTRIM(tLocation.LocOwner)) > 0 '+ 'THEN tLocation.LocOwner'); qryStringList.Add(' ELSE tName.Owner'); qryStringList.Add(' END, tName.*'); qryStringList.Add('FROM ((SELECT Name2.*, Client.Ref3 AS Owner'); qryStringList.Add('FROM (SELECT Call.ClientCode, Call.CallNumber, '+ 'Call.LastName, Call.Logon, Call.CallSubject3,'); qryStringList.Add(' Call.SupportGroup, Call.LogDatTim, '+ 'Name1.LogDate, Name1.ConfigId, Name1.CallSubject1, Name1.CallSubject2'); qryStringList.Add('FROM (SELECT CONVERT(Char(10),Call.LogDatTim,103) '+ 'AS LogDate, Call.ConfigId, Call.CallSubject1, Call.CallSubject2'); qryStringList.Add('FROM Call'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth); qryStringList.Add('AND Call.ConfigID IS NOT NULL'); qryStringList.Add('AND (Call.CallSubject1 NOT LIKE ''W-%'' '+ 'AND Call.CallSubject1 NOT LIKE ''R-%'' AND Call.CallSubject1 NOT LIKE ''C-%'')'); qryStringList.Add('GROUP BY CONVERT(Char(10),Call.LogDatTim,103), '+ 'Call.ConfigID, Call.CallSubject1, Call.CallSubject2) AS Name1'); qryStringList.Add('LEFT JOIN Call ON ((Name1.LogDate = '+ 'CONVERT(Char(10),Call.LogDatTim,103))'); qryStringList.Add('AND (Name1.ConfigID = Call.ConfigID)'); qryStringList.Add('AND (Name1.CallSubject1 = Call.CallSubject1)'); qryStringList.Add('AND (Name1.CallSubject2 = Call.CallSubject2))'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth+') AS Name2'); qryStringList.Add('INNER JOIN Client ON Name2.ClientCode = Client.ClientCode)'+ ' AS tName'); qryStringList.Add('LEFT JOIN (SELECT Logon.Ref3 AS LocOwner, Call.CallNumber'); qryStringList.Add('FROM (Call LEFT JOIN Logon '+ 'ON Call.LogonCode = Logon.LogonCode)'); qryStringList.Add('LEFT JOIN Configuration '+ 'ON Call.ConfigCode = Configuration.ConfigCode'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth); qryStringList.Add('AND (Configuration.ConfigClassificationUnique <> 1)) '+ 'AS tLocation ON tName.CallNumber = tLocation.CallNumber)'); qryStringList.Add('LEFT JOIN (SELECT Configuration.Ref2 AS TrainOwner, '+ 'Call.CallNumber'); qryStringList.Add('FROM (Call LEFT JOIN Configuration '+ 'ON Call.ConfigCode = Configuration.ConfigCode)'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth); qryStringList.Add('AND (Configuration.Ref1 NOT LIKE ''Z%'' AND '+ 'Configuration.Ref1 NOT LIKE ''E:%'')'); qryStringList.Add('AND ((Configuration.ConfigClassificationUnique = 1) OR '+ '(Configuration.ConfigClassificationUnique = 4))) AS tTrain'); qryStringList.Add('ON tName.CallNumber = tTrain.CallNumber) AS QuetzalFaults)'+ ' AS qry_all'); qryStringList.Add('ORDER BY LogDate'); /* Suggested changes */ // qryStringList.Add('SELECT ''Cust_ID'' = CASE'); // qryStringList.Add(' WHEN Owner1 + CallSubject1 = ''FRTRADIO BASE EQ'' THEN ''FRT'''); ????????????????? qryStringList.Add('SELECT (CASE'); qryStringList.Add(' WHEN CallSubject1 = ''RADIO BASE EQ'' AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV'')) THEN Owner1'); qryStringList.Add(' WHEN CallSubject1 = ''RADIO BASE EQ'' THEN ''MEG'''); qryStringList.Add(' WHEN TrainMaintainer IS NOT NULL THEN TrainMaintainer'); ????????????????? qryStringList.Add(' WHEN CallSubject1 = ''RADIO BASE EQ'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''NXB'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CGE'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CME'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CDF'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CAA'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CDM'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CCM'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CJD'' THEN ''MEG'''); qryStringList.Add(' WHEN Owner1 = ''CTT'' THEN ''MEG'''); qryStringList.Add(' ELSE Owner1'); // qryStringList.Add(' END, ''Bill'' = CASE'); ????????????????? qryStringList.Add(' END) AS "Cust_ID", (CASE'); ????????????????? qryStringList.Add(' WHEN CallSubject1 LIKE ''CENTRACOM'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''SECURITY'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''TELMAX 21'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''TELMAX'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''FLEXCOMMS'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''QUETZAL'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE T/T'' THEN 0'); // Change 21-06-2005 as requested by RLD. qryStringList.Add(' WHEN CallSubject1 LIKE ''PABX EXCHANGE'' THEN 0'); // qryStringList.Add(' WHEN ((CallSubject1 LIKE ''EXCHANGE'') AND '+ // '(CallSubject2 LIKE ''PABX SYSTEM'')) THEN 0'); // end of change 21-06-2005. qryStringList.Add(' WHEN ((CallSubject1 LIKE ''LOCO-LTR FAULT'') AND '+ '(CallSubject2 LIKE ''LOCAL T/RADIO'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''RADIO PORTABLE/FIXED'') AND '+ '(CallSubject2 LIKE ''TWO WAY RADIO'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''SEPAC%'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''TTB-LOCO FAULT'') AND '+ '(CallSubject2 LIKE ''NUTR TTBR'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''FLEX COMM TERM'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''POST PHONE'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''MDC CONSOLE'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''SHUNT RADIO'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''PCM LINK'') AND '+ // '(Owner1 LIKE ''FRT'')) THEN 0'); '(Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''ASW - COMMS'') AND '+ '(Owner1 LIKE ''FRT'')) THEN 0'); qryStringList.Add(' WHEN ((CallSubject1 LIKE ''BASE STN EQUIP'') AND '+ // '((Owner1 LIKE ''FRT'') OR (Owner1 LIKE ''ART''))) THEN 0'); '(Owner1 IN (''FRT'', ''ART'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0'); // qryStringList.Add(' WHEN ((CallSubject1 LIKE ''BASE STN EQUIP'') AND '+ // '(Owner1 LIKE ''ART'')) THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''VOICEMAIL'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE D-TERM'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE-IQUARTZ'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE EXICOM'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''PHONE QMASTER'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''SECURITY'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''ETAS'' THEN 0'); qryStringList.Add(' WHEN CallSubject2 LIKE ''LTR RADIO (End to End)'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''SMR RADIO'' THEN 0'); qryStringList.Add(' WHEN Owner1 LIKE ''VRT'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''%LOCO%'' THEN 0'); qryStringList.Add(' WHEN CallSubject1 LIKE ''RADIO DYNON'' THEN 0'); qryStringList.Add(' ELSE 1'); // qryStringList.Add(' END, qry_all.*'); ????????????????? qryStringList.Add(' END) AS "Bill", qry_all.*'); ????????????????? // qryStringList.Add('FROM (SELECT ''Owner1'' = CASE Assign'); ????????????????? qryStringList.Add('FROM (SELECT CASE Assign'); ????????????????? qryStringList.Add(' WHEN ''HILLSIDE'' THEN ''CME'''); qryStringList.Add(' WHEN ''BAYSIDE'' THEN ''CME'''); qryStringList.Add(' WHEN ''FREIGHT VICTORIA'' THEN ''FRT'''); qryStringList.Add(' WHEN ''FREIGHT AUSTRALIA'' THEN ''FRT'''); qryStringList.Add(' WHEN ''V/LINE PASS'' THEN ''VLP'''); qryStringList.Add(' WHEN ''ARTC'' THEN ''ART'''); qryStringList.Add(' ELSE Assign'); // qryStringList.Add(' END, QuetzalFaults.*'); ????????????????? qryStringList.Add(' END) AS "Owner1", QuetzalFaults.*'); ????????????????? // qryStringList.Add('FROM (SELECT'); // qryStringList.Add('''Assign'' = CASE'); ????????????????? qryStringList.Add('FROM (SELECT (CASE'); ????????????????? qryStringList.Add(' WHEN LEN(RTRIM(tTrain.TrainOwner)) > 0 '+ 'THEN tTrain.TrainOwner'); qryStringList.Add(' WHEN LEN(RTRIM(tLocation.LocOwner)) > 0 '+ 'THEN tLocation.LocOwner'); qryStringList.Add(' ELSE tName.Owner'); // qryStringList.Add(' END, tName.*'); ????????????????? qryStringList.Add(' END) AS "Assign", tName.*, tTrain.TrainMaintainer'); ????????????????? qryStringList.Add('FROM ((SELECT Name2.*, Client.Ref3 AS Owner'); qryStringList.Add('FROM (SELECT Call.ClientCode, Call.CallNumber, '+ 'Call.LastName, Call.Logon, Call.CallSubject3,'); qryStringList.Add(' Call.SupportGroup, Call.LogDatTim, '+ 'Name1.LogDate, Name1.ConfigId, Name1.CallSubject1, Name1.CallSubject2'); qryStringList.Add('FROM (SELECT CONVERT(Char(10),Call.LogDatTim,103) '+ 'AS LogDate, Call.ConfigId, Call.CallSubject1, Call.CallSubject2'); qryStringList.Add('FROM Call'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth); qryStringList.Add('AND Call.ConfigID IS NOT NULL'); qryStringList.Add('AND (Call.CallSubject1 NOT LIKE ''W-%'' '+ 'AND Call.CallSubject1 NOT LIKE ''R-%'' AND Call.CallSubject1 NOT LIKE ''C-%'')'); qryStringList.Add('GROUP BY CONVERT(Char(10),Call.LogDatTim,103), '+ 'Call.ConfigID, Call.CallSubject1, Call.CallSubject2) AS Name1'); qryStringList.Add('LEFT JOIN Call ON ((Name1.LogDate = '+ 'CONVERT(Char(10),Call.LogDatTim,103))'); qryStringList.Add('AND (Name1.ConfigID = Call.ConfigID)'); qryStringList.Add('AND (Name1.CallSubject1 = Call.CallSubject1)'); qryStringList.Add('AND (Name1.CallSubject2 = Call.CallSubject2))'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth+') AS Name2'); qryStringList.Add('INNER JOIN Client ON Name2.ClientCode = Client.ClientCode)'+ ' AS tName'); qryStringList.Add('LEFT JOIN (SELECT Logon.Ref3 AS LocOwner, Call.CallNumber'); qryStringList.Add('FROM (Call LEFT JOIN Logon '+ 'ON Call.LogonCode = Logon.LogonCode)'); qryStringList.Add('LEFT JOIN Configuration '+ 'ON Call.ConfigCode = Configuration.ConfigCode'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth); qryStringList.Add('AND (Configuration.ConfigClassificationUnique <> 1)) '+ 'AS tLocation ON tName.CallNumber = tLocation.CallNumber)'); qryStringList.Add('LEFT JOIN (SELECT Configuration.Ref2 AS TrainOwner, '+ 'Call.CallNumber'); qryStringList.Add('FROM (Call LEFT JOIN Configuration '+ 'ON Call.ConfigCode = Configuration.ConfigCode)'); qryStringList.Add('WHERE Year(Call.LogDatTim) = '+sBillYear+ ' AND Month(Call.LogDatTim) = '+sBillMonth); qryStringList.Add('AND (Configuration.Ref1 NOT LIKE ''Z%'' AND '+ 'Configuration.Ref1 NOT LIKE ''E:%'')'); qryStringList.Add('AND ((Configuration.ConfigClassificationUnique = 1) OR '+ '(Configuration.ConfigClassificationUnique = 4))) AS tTrain'); qryStringList.Add('ON tName.CallNumber = tTrain.CallNumber) AS QuetzalFaults)'+ ' AS qry_all'); qryStringList.Add('ORDER BY LogDate'); /* Results of the above changes with Delphi stripped */ SELECT (CASE WHEN CallSubject1 = ''RADIO BASE EQ'' AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV'')) THEN Owner1 WHEN CallSubject1 = ''RADIO BASE EQ'' THEN ''MEG'' WHEN TrainMaintainer IS NOT NULL THEN TrainMaintainer WHEN CallSubject1 = ''RADIO BASE EQ'' THEN ''MEG'' WHEN Owner1 = ''NXB'' THEN ''MEG'' WHEN Owner1 = ''CGE'' THEN ''MEG'' WHEN Owner1 = ''CME'' THEN ''MEG'' WHEN Owner1 = ''CDF'' THEN ''MEG'' WHEN Owner1 = ''CAA'' THEN ''MEG'' WHEN Owner1 = ''CDM'' THEN ''MEG'' WHEN Owner1 = ''CCM'' THEN ''MEG'' WHEN Owner1 = ''CJD'' THEN ''MEG'' WHEN Owner1 = ''CTT'' THEN ''MEG'' ELSE Owner1 END) AS "Cust_ID", (CASE WHEN CallSubject1 LIKE ''CENTRACOM'' THEN 0 WHEN CallSubject1 LIKE ''SECURITY'' THEN 0 WHEN CallSubject2 LIKE ''TELMAX 21'' THEN 0 WHEN CallSubject2 LIKE ''TELMAX'' THEN 0 WHEN CallSubject2 LIKE ''FLEXCOMMS'' THEN 0 WHEN CallSubject2 LIKE ''QUETZAL'' THEN 0 WHEN CallSubject1 LIKE ''PHONE T/T'' THEN 0 WHEN CallSubject1 LIKE ''PABX EXCHANGE'' THEN 0 WHEN ((CallSubject1 LIKE ''LOCO-LTR FAULT'') AND (CallSubject2 LIKE ''LOCAL T/RADIO'')) THEN 0 WHEN ((CallSubject1 LIKE ''RADIO PORTABLE/FIXED'') AND (CallSubject2 LIKE ''TWO WAY RADIO'')) THEN 0 WHEN ((CallSubject1 LIKE ''SEPAC%'') AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN ((CallSubject1 LIKE ''TTB-LOCO FAULT'') AND (CallSubject2 LIKE ''NUTR TTBR'')) THEN 0 WHEN ((CallSubject1 LIKE ''FLEX COMM TERM'') AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN ((CallSubject1 LIKE ''POST PHONE'') AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN ((CallSubject1 LIKE ''MDC CONSOLE'') AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN ((CallSubject1 LIKE ''SHUNT RADIO'') AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN ((CallSubject1 LIKE ''PCM LINK'') AND (Owner1 IN (''FRT'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN ((CallSubject1 LIKE ''ASW - COMMS'') AND (Owner1 LIKE ''FRT'')) THEN 0 WHEN ((CallSubject1 LIKE ''BASE STN EQUIP'') AND (Owner1 IN (''FRT'', ''ART'', ''OSD'', ''IMD'', ''RBD'', ''RBV''))) THEN 0 WHEN CallSubject1 LIKE ''VOICEMAIL'' THEN 0 WHEN CallSubject1 LIKE ''PHONE D-TERM'' THEN 0 WHEN CallSubject1 LIKE ''PHONE-IQUARTZ'' THEN 0 WHEN CallSubject1 LIKE ''PHONE EXICOM'' THEN 0 WHEN CallSubject1 LIKE ''PHONE QMASTER'' THEN 0 WHEN CallSubject2 LIKE ''SECURITY'' THEN 0 WHEN CallSubject2 LIKE ''ETAS'' THEN 0 WHEN CallSubject2 LIKE ''LTR RADIO (End to End)'' THEN 0 WHEN CallSubject1 LIKE ''SMR RADIO'' THEN 0 WHEN Owner1 LIKE ''VRT'' THEN 0 WHEN CallSubject1 LIKE ''%LOCO%'' THEN 0 WHEN CallSubject1 LIKE ''RADIO DYNON'' THEN 0 ELSE 1 END) AS "Bill", qry_all.* FROM (SELECT (CASE Assign WHEN 'HILLSIDE' THEN 'CME' WHEN 'BAYSIDE' THEN 'CME' WHEN 'FREIGHT VICTORIA' THEN 'FRT' WHEN 'FREIGHT AUSTRALIA' THEN 'FRT' WHEN 'V/LINE PASS' THEN 'VLP' WHEN 'ARTC' THEN 'ART' ELSE Assign END) AS "Owner1", QuetzalFaults.* FROM (SELECT (CASE WHEN LEN(RTRIM(tTrain.TrainOwner)) > 0 THEN tTrain.TrainOwner WHEN LEN(RTRIM(tLocation.LocOwner)) > 0 THEN tLocation.LocOwner ELSE tName.Owner END) AS "Assign", tName.*, tTrain.TrainMaintainer FROM ((SELECT Name2.*, Client.Ref3 AS Owner FROM (SELECT Call.ClientCode, Call.CallNumber, Call.LastName, Call.Logon, Call.CallSubject3, Call.SupportGroup, Call.LogDatTim, Name1.LogDate, Name1.ConfigId, Name1.CallSubject1, Name1.CallSubject2 FROM (SELECT CONVERT(Char(10),Call.LogDatTim,103) AS LogDate, Call.ConfigId, Call.CallSubject1, Call.CallSubject2 FROM Call WHERE Year(Call.LogDatTim) = 2004 AND Month(Call.LogDatTim) = 8 AND Call.ConfigID IS NOT NULL AND (Call.CallSubject1 NOT LIKE '-%' AND Call.CallSubject1 NOT LIKE 'R-%' AND Call.CallSubject1 NOT LIKE 'C-%') GROUP BY CONVERT(Char(10),Call.LogDatTim,103), Call.ConfigID, Call.CallSubject1, Call.CallSubject2) AS Name1 LEFT JOIN Call ON ((Name1.LogDate = CONVERT(Char(10),Call.LogDatTim,103)) AND (Name1.ConfigID = Call.ConfigID) AND (Name1.CallSubject1 = Call.CallSubject1) AND (Name1.CallSubject2 = Call.CallSubject2)) WHERE Year(Call.LogDatTim) = 2004 AND Month(Call.LogDatTim) = 8) AS Name2 INNER JOIN Client ON Name2.ClientCode = Client.ClientCode) AS tName LEFT JOIN (SELECT Logon.Ref3 AS LocOwner, Call.CallNumber FROM (Call LEFT JOIN Logon ON Call.LogonCode = Logon.LogonCode) LEFT JOIN Configuration ON Call.ConfigCode = Configuration.ConfigCode WHERE Year(Call.LogDatTim) = 2004 AND Month(Call.LogDatTim) = 8 AND (Configuration.ConfigClassificationUnique <> 1)) AS tLocation ON tName.CallNumber = tLocation.CallNumber) LEFT JOIN (SELECT Configuration.Ref2 AS TrainOwner, Call.CallNumber FROM (Call LEFT JOIN Configuration ON Call.ConfigCode = Configuration.ConfigCode) WHERE Year(Call.LogDatTim) = 2004 AND Month(Call.LogDatTim) = 8 AND (Configuration.Ref1 NOT LIKE 'Z%' AND Configuration.Ref1 NOT LIKE 'E:%') AND ((Configuration.ConfigClassificationUnique = 1) OR (Configuration.ConfigClassificationUnique = 4))) AS tTrain ON tName.CallNumber = tTrain.CallNumber) AS QuetzalFaults) AS qry_all ORDER BY LogDate