Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
Drathnar
Starting Member
8 Posts |
Posted - 2008-12-04 : 17:37:03
|
| I have a query that pulls the following…All fields are the same with the exception of the last field and the upsellprice field what my intent is to limit this to only display the most recent entry for any given item rather than display the history as well.. However everything I have tried has not worked.. the closest i feel i have gotten is the query belowItem1 7 DC Item1# E 01 156 0.00 DP 0.00 12/4/2008 7:50:17 AM NULL NULL 12.95 34.95 12/4/2008 12:00:00 AM Item1 7 DC Item1# E 01 156 0.00 DP 0.00 12/4/2008 7:50:17 AM NULL NULL 16.95 34.95 12/2/2008 12:00:00 AM Item1 7 DC Item1# E 01 156 0.00 DP 0.00 12/4/2008 7:50:17 AM NULL NULL 20.95 34.95 11/27/2008 12:00:00 AM SELECT dbo.tbl_PIC182.ItemDescription, dbo.tbl_PIC180.Company, dbo.tbl_PIC180.Catalog, dbo.tbl_PIC180.ItemNo, dbo.tbl_PIC180.Type, dbo.tbl_PIC180.[Group], dbo.tbl_PIC180.Location, dbo.tbl_PIC180.Page, dbo.tbl_PIC180.Commission, dbo.tbl_PIC180.UpsellPrefix, dbo.tbl_PIC180.UnitPrice2, dbo.tbl_PIC180.DateAdded, dbo.tbl_PIC180.DateModified, dbo.tbl_PIC180.ModifiedBy, dbo.tbl_PIC182.UpsellPrice, dbo.tbl_PIC182.Price AS UnitPrice, MAX Date(dbo.tbl_PIC182.Date) AS Expr1FROM dbo.tbl_PIC180 INNER JOIN dbo.tbl_PIC182 ON dbo.tbl_PIC180.ItemNo = dbo.tbl_PIC182.ItemNoWHERE ('Expr1' IN(SELECT MAX DATE('Expr1') AS Expr2FROM dbo.tbl_PIC180 AS tbl_PIC180_1 INNER JOIN dbo.tbl_PIC182 AS tbl_PIC182_1 ON tbl_PIC180_1.ItemNo = tbl_PIC182_1.ItemNoGROUP BY tbl_PIC182_1.ItemNo, tbl_PIC180_1.Company, tbl_PIC180_1.Catalog))GROUP BY dbo.tbl_PIC182.ItemDescription, dbo.tbl_PIC180.Company, dbo.tbl_PIC180.Catalog, dbo.tbl_PIC180.ItemNo, dbo.tbl_PIC180.Type, dbo.tbl_PIC180.[Group], dbo.tbl_PIC180.Location, dbo.tbl_PIC180.Page, dbo.tbl_PIC180.Commission, dbo.tbl_PIC180.UpsellPrefix, dbo.tbl_PIC180.UnitPrice2, dbo.tbl_PIC180.DateAdded, dbo.tbl_PIC180.DateModified, dbo.tbl_PIC180.ModifiedBy, dbo.tbl_PIC182.UpsellPrice, dbo.tbl_PIC182.Price |
|
|
chrianth
Yak Posting Veteran
50 Posts |
Posted - 2008-12-05 : 01:06:23
|
| You can try the query below...hope the output is what you're expecting. :)SELECT dbo.tbl_PIC182.ItemDescription, dbo.tbl_PIC180.Company, dbo.tbl_PIC180.Catalog, dbo.tbl_PIC180.ItemNo, dbo.tbl_PIC180.Type, dbo.tbl_PIC180.[Group], dbo.tbl_PIC180.Location, dbo.tbl_PIC180.Page, dbo.tbl_PIC180.Commission, dbo.tbl_PIC180.UpsellPrefix, dbo.tbl_PIC180.UnitPrice2, dbo.tbl_PIC180.DateAdded, dbo.tbl_PIC180.DateModified, dbo.tbl_PIC180.ModifiedBy, dbo.tbl_PIC182.UpsellPrice, dbo.tbl_PIC182.Price AS UnitPrice, dbo.tbl_PIC182.Date AS DateFROM dbo.tbl_PIC180 IINNER JOIN dbo.tbl_PIC182 ON dbo.tbl_PIC180.ItemNo = dbo.tbl_PIC182.ItemNojoin (SELECT MAX(tbl_PIC182_1.Date) AS Date, tbl_PIC182_1.ItemNo AS ItemNo, tbl_PIC180_1.Company AS Company, tbl_PIC180_1.[Catalog] as [Catalog] FROM dbo.tbl_PIC180 AS tbl_PIC180_1 INNER JOIN dbo.tbl_PIC182 AS tbl_PIC182_1 ON tbl_PIC180_1.ItemNo = tbl_PIC182_1.ItemNo GROUP BY tbl_PIC182_1.ItemNo, tbl_PIC180_1.Company, tbl_PIC180_1.[Catalog] )MaxDTRecordon(MaxDTRecord.Date = dbo.tbl_PIC182.Date and MaxDTRecord.ItemNo = dbo.tbl_PIC182.ItemNo and MaxDTRecord.Company = dbo.tbl_PIC180.Company and MaxDTRecord.[Catalog] = dbo.tbl_PIC180.[Catalog]) |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-12-05 : 03:01:36
|
| [code]SELECT *FROM(SELECT ROW_NUMBER() OVER(PARTITION BY dbo.tbl_PIC180.ItemNo ORDER BY dbo.tbl_PIC182.Date DESC) AS Seq,dbo.tbl_PIC182.ItemDescription, dbo.tbl_PIC180.Company, dbo.tbl_PIC180.Catalog, dbo.tbl_PIC180.ItemNo, dbo.tbl_PIC180.Type, dbo.tbl_PIC180.[Group], dbo.tbl_PIC180.Location, dbo.tbl_PIC180.Page, dbo.tbl_PIC180.Commission, dbo.tbl_PIC180.UpsellPrefix, dbo.tbl_PIC180.UnitPrice2, dbo.tbl_PIC180.DateAdded, dbo.tbl_PIC180.DateModified, dbo.tbl_PIC180.ModifiedBy, dbo.tbl_PIC182.UpsellPrice, dbo.tbl_PIC182.Price AS UnitPrice, dbo.tbl_PIC182.Date AS Expr1FROM dbo.tbl_PIC180 INNER JOINdbo.tbl_PIC182 ON dbo.tbl_PIC180.ItemNo = dbo.tbl_PIC182.ItemNo)tWHERE Seq=1[/code] |
 |
|
|
Drathnar
Starting Member
8 Posts |
Posted - 2008-12-05 : 09:21:03
|
| chrianth -- That is not really what i was looking for some items have a different date than the overall max date FEX.. Item 1 may have the most recent date of 12/5 where item 2 may have the most recent date of 11/3 I need to pull only the record with the most recent date for each itemsame with your reply Vis it only pulls the records dated today and those are not the max records for all items some items are dated yesterday for example as their most recent update |
 |
|
|
|
|
|
|
|