rosshughes
Starting Member
16 Posts |
Posted - 2011-04-12 : 18:10:49
|
Thanks, here it is:Declare @QuotingDataSet Table( counter int identity(1,1) PRIMARY KEY, Company varchar(10), QuoteNum int, datereceived smalldatetime, EntryDate smalldatetime, expirationdate smalldatetime, datequoted smalldatetime, quoted bit, headordered bit, salespersoncode varchar(10), salespersonname varchar (30), groupcode varchar(20), groupdescription varchar(50), Division varchar(50), custid varchar(20), CustomerName varchar(100), quoteline int, dtlordered bit, partnum varchar(50), linedesc varchar(200), revisionnum varchar(25), prodcode varchar(15), productgroup varchar(50), partsales bit, toolingsales bit, qcustomerpart varchar(50), qcustomerrevnum varchar(25), daystoprocess int, opcode varchar(12), opdesc varchar(50), rownumber int)--insert the base quoting data in to the temporary memory tableInsert into @QuotingDataSetSELECT * FROM (SELECT qt.company, qt.quotenum, qt.date01 As datereceived, qt.entrydate, qt.expirationdate, qt.datequoted, qt.quoted, qt.ordered AS headordered, qsalesrp.salesrepcode, qsalesrp.name As SalesName, (CASE WHEN custgrup.groupcode Is Null THEN '[No Group Code]' ELSE custgrup.groupcode END) As groupcode, (CASE WHEN custgrup.groupdesc Is Null THEN '[No Group Desc]' ELSE custgrup.groupdesc END) As groupdesc, (CASE WHEN SUBSTRING(qt.character01,1,3) = '' Then '[No Division]' ELSE qt.character01 END) AS Division, customer.custid, customer.name, quotedtl.quoteline, quotedtl.ordered, quotedtl.partnum, quotedtl.linedesc, quotedtl.revisionnum, (CASE WHEN quotedtl.prodcode = '' THEN '[No Prod Code]' ELSE quotedtl.prodcode END) As ProdCode, (CASE WHEN prodgrup.description Is Null THEN '[No Prod Group]' ELSE prodgrup.description END) As productgroup, prodgrup.checkbox02 As PartSales, prodgrup.checkbox03 As ToolingSales, quotedtl.xpartnum, quotedtl.xrevisionnum, (CASE WHEN qt.date01 Is Null THEN DateDiff(day,qt.entrydate,qt.datequoted) ELSE DateDiff(day,qt.date01,qt.datequoted) END) As DaysToProcess, (SELECT TOP 1 qs1.opcode FROM quoteopr As qs1 WHERE qt.company = qs1.company AND qt.quotenum = qs1.quotenum AND qs1.assemblyseq = 0 AND quotedtl.quoteline = qs1.quoteline ORDER BY qs1.oprseq) As OpCode, (SELECT TOP 1 qs1.opdesc FROM quoteopr As qs1 WHERE qt.company = qs1.company AND qt.quotenum = qs1.quotenum AND qs1.assemblyseq = 0 AND quotedtl.quoteline = qs1.quoteline ORDER BY qs1.oprseq) As OpDescription, ROW_NUMBER() OVER(PARTITION BY quotedtl.prodcode,quotedtl.partnum ORDER BY quotedtl.prodcode,quotedtl.partnum,qt.entrydate DESC) AS 'RowNumber'FROM quotehed AS qt INNER JOIN customer ON qt.company = customer.company AND qt.custnum = customer.custnum INNER JOIN quotedtl ON qt.company = quotedtl.company AND qt.quotenum = quotedtl.quotenum LEFT OUTER JOIN part ON quotedtl.company = part.company AND quotedtl.partnum = part.partnum LEFT OUTER JOIN prodgrup ON quotedtl.company = prodgrup.company AND quotedtl.prodcode = prodgrup.prodcode LEFT OUTER JOIN custgrup ON customer.company = custgrup.company AND customer.groupcode = custgrup.groupcode LEFT OUTER JOIN qsalesrp ON qt.company = qsalesrp.company AND qt.quotenum = qsalesrp.quotenumWHERE qt.company = 'LSI68332' AND qt.quoted = 1 AND qt.entrydate >= '1/1/2010' AND qt.entrydate <= '12/31/2010' AND qt.quotenum = 2440) As QSum --AND qt.entrydate >= @QFROMDate AND qt.entrydate <= @QTODate AND qt.quotenum = 2440) As QSumWHERE RowNumber = 1SELECT * FROM @QuotingDataSet-- WHERE Quotenum = 2440The QuoteNum field is the relevant field. The above example returns two records, rather than three.Thanks,Ross |
 |
|