Unfortunately i am using sql server 7.0CREATE PROCEDURE proc1 ( @stream_id int, @type varchar(20) = 'Stream')ASif @type = 'Batch' begin -- if a batch id is passed through the stream id SELECT @stream_id = StreamId FROM Batches WHERE BatchId = @stream_idendDELETE StreamTrackingWHERE StreamId = @stream_idDECLARE @job_id intDECLARE @is_printing intDECLARE @is_mailing intDECLARE @is_inkjetting intDECLARE @national_job_id intSELECT @job_id = j.JobId, @is_printing = IsPrinting, @is_mailing = IsMailing, @is_inkjetting = IsInkjet, @national_job_id = NationalJobIdFROM Streams s INNER JOIN Jobs j ON s.JobId = j.JobIdWHERE StreamId = @stream_idDECLARE @laser_complete intSELECT @laser_complete = StatusLevelFROM JobControl.dbo.Status WHERE Status = 'Laser Reconciled'DECLARE @mail_complete intSELECT @mail_complete = StatusLevelFROM JobControl.dbo.Status WHERE Status = 'Mail Reconciled'DECLARE @inkjet_complete intSELECT @inkjet_complete = StatusLevelFROM JobControl.dbo.Status WHERE Status = 'Inkjet Reconciled'/* Sites */CREATE TABLE #temp_data ( MachineType varchar(50), Site varchar(30), Qty int, BatchStatus varchar(50))/* PRINT INFORMATION */ if @is_printing = 1 begin INSERT INTO #temp_data SELECT 'Printer', MachineSite, SUM(BatchImages), BatchStatus FROM Streams st INNER JOIN Batches b ON b.StreamID = st.StreamID INNER JOIN BatchesPrintDetails bpd ON b.BatchId = bpd.BatchId INNER JOIN JobControl.dbo.MachineShifts ms ON ms.MachineShiftId = bpd.MachineShiftId INNER JOIN JobControl.dbo.Printers p ON p.PrinterID = ms.MachineID WHERE Remakes = 0 AND st.StreamID = @stream_id AND IsPrinting = 1 AND MachineType like 'Printer%' AND BatchStatus NOT LIKE '%Cancelled' GROUP BY MachineSite, BatchStatusend /* MAIL INFORMATION */ if @is_mailing = 1 begin INSERT INTO #temp_data SELECT 'Mail Machine', MachineSite, SUM(BatchMailpacks), BatchStatus FROM Streams st INNER JOIN Batches b ON b.StreamID = st.StreamID INNER JOIN BatchesMailDetails bmd ON b.BatchId = bmd.BatchId INNER JOIN JobControl.dbo.MachineShifts ms ON ms.MachineShiftId = bmd.MachineShiftId INNER JOIN JobControl.dbo.MailMachines m ON m.MailMachineId = ms.MachineID INNER JOIN JobControl.dbo.Status s ON b.BatchStatus = s.Status WHERE Remakes = 0 AND st.StreamID = @stream_id AND IsMailing = 1 AND MachineType like 'Mail Machine%' AND BatchStatus NOT LIKE '%Cancelled' GROUP BY MachineSite, BatchStatusend /* INKJET INFORMATION */if @is_inkjetting = 1 begin INSERT INTO #temp_data SELECT 'Inkjet', MachineSite, SUM(BatchMailpacks), BatchStatus FROM Streams st INNER JOIN Batches b ON b.StreamID = st.StreamID INNER JOIN BatchesInkjetDetails bmd ON b.BatchId = bmd.BatchId INNER JOIN JobControl.dbo.MachineShifts ms ON ms.MachineShiftId = bmd.MachineShiftId INNER JOIN JobControl.dbo.Inkjets i ON i.InkjetID = ms.MachineID INNER JOIN JobControl.dbo.Status s ON b.BatchStatus = s.Status WHERE Remakes = 0 AND st.StreamID = @stream_id AND IsInkjet = 1 AND MachineType like 'Inkjet%' AND BatchStatus NOT LIKE '%Cancelled' GROUP BY MachineSite, BatchStatusendDECLARE site CURSOR FOR SELECT DISTINCT Site FROM #temp_dataOPEN siteDECLARE @site varchar(30)DECLARE @print_qty intDECLARE @print_complete intDECLARE @mail_qty intDECLARE @mail_qty_complete intDECLARE @inkjet_qty intDECLARE @inkjet_qty_complete intFETCH NEXT FROM site INTO @siteWHILE @@fetch_status = 0BEGIN SELECT @print_qty = isnull(SUM(Qty), 0) FROM #temp_data WHERE MachineType = 'Printer' SELECT @print_complete = isnull(SUM(Qty), 0) FROM #temp_data td INNER JOIN Status s ON s.Status = td.BatchStatus WHERE MachineType = 'Printer' AND StatusLevel >= @laser_complete SELECT @mail_qty = isnull(SUM(Qty), 0) FROM #temp_data WHERE MachineType LIKE 'Mail Machine%' SELECT @mail_qty_complete = isnull(SUM(Qty), 0) FROM #temp_data td INNER JOIN Status s ON s.Status = td.BatchStatus WHERE MachineType = 'Mail Machine' AND StatusLevel >= @mail_complete SELECT @inkjet_qty = isnull(SUM(Qty), 0) FROM #temp_data WHERE MachineType = 'Inkjet' SELECT @inkjet_qty_complete = isnull(SUM(Qty), 0) FROM #temp_data td INNER JOIN Status s ON s.Status = td.BatchStatus WHERE MachineType = 'Inkjet' AND StatusLevel >= @inkjet_complete INSERT INTO StreamTracking ( JobId, StreamId, StreamTotalImages, StreamImagesComplete, StreamTotalMailpacks, StreamMailpacksComplete, StreamTotalInkjetMailpacks, StreamInkjetMailpacksComplete, Site, LastUpdated, NationalJobId ) VALUES ( @job_id, @stream_id, @print_qty, @print_complete, @mail_qty, @mail_qty_complete, @inkjet_qty, @inkjet_qty_complete, @site, getdate(), @national_job_id ) FETCH NEXT FROM site INTO @siteENDCLOSE siteDEALLOCATE siteDROP TABLE #temp_dataGO
mk_garg