Query laatste boeking zichtbaar maken

Status
Niet open voor verdere reacties.

barendrecht82

Gebruiker
Lid geworden
24 mrt 2013
Berichten
230
Hoi,

Ik heb een database met producten en prijzen.

Elke keer als een prijs is gewijzigd dan komt er een regel erbij.

Hoe kan ik een query bouwen of opstellen zodat ik alleen de "laatste" boekingen zichtbaar krijg als output?

Zie voorbeeld:


Code:
SELECT dbo_GRV_Audit_ChangesCostprice.Itemcode, dbo_GRV_Audit_ChangesCostprice.ItemDescription, Round(Val([NewValue]),2) AS Nieuw, dbo_GRV_Audit_ChangesCostprice.Date
FROM dbo_GRV_Audit_ChangesCostprice
WHERE (((Round(Val([NewValue]),2))<>0));
 
In access kan je een groepsquery maken met 2 velden : productID en laatste boekdatum voor dat product. Deze query kan je dan aan andere queries koppelen op productID en de datum.

Aangezien ik aan de schema naam dbo_ merk dat je tabellen gekoppelde SQL server tabellen zijn: maak een view aan in SQL server. Daar kan je een ranking functie gebruiken binnen de producten en dan in een query alleen de records van rank 1 gebruiken.
iets als (namen te vervangen met de namen uit je database):
Code:
USE [MyDB]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[V_MyView]
AS


SELECT prodid, bookingid,value,bookingdate row_number() OVER(PARTITION BY prodid order by bookingdate desc) as RangOrder
FROM dbo.MyBookings ;
GO
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan