18. december 2003 - 19:08
Der er
4 kommentarer og 1 løsning
Select problem!
Hvorledes får jeg nedenstående stored procedure til at indsætte den post med den højeste værdi i feltet ValidFrom, men som samtidig er <= Parametret? SELECT dbo.TblVareNummer.Varenummer, dbo.TblProdukter.Produktnavn, dbo.TblProdukter.halvfabrikata, dbo.TblProdukter.Kategori, dbo.TblProdukter.ValleNorm, dbo.TblProdukter.FedtNorm, dbo.TblProdukter.ProteinNorm, dbo.TblProdukter.Lønnorm, dbo.TblProdukter.ProduktType, dbo.TblProdukter.secundakl2vnr, dbo.TblProdukter.secundakl2proc, dbo.TblProdukter.secundakl3vnr, dbo.TblProdukter.secundakl3proc, dbo.TblProdukter.Secunda, dbo.TblProdukter.secundaproc, dbo.TblProdukter.prima, dbo.TblProdukter.Oprettetdato, dbo.TblProdukter.ValidFrom into #Temp1 FROM dbo.TblProdukter INNER JOIN dbo.TblVareNummer ON dbo.TblProdukter.Varenummer = dbo.TblVareNummer.Varenummer AND dbo.TblProdukter.ValidFrom IN (SELECT MAX(t.validfrom) FROM tblprodukter t WHERE t.varenummer = tblvarenummer.varenummer) WHERE (dbo.TblProdukter.ValidFrom <= @validfrom) !!!dm013
Annonceindlæg fra Infor
18. december 2003 - 19:56
#1
Hvad med dette: Create Procedure spVareGeting (@validfrom as int) As Declare @VareNo Varchar(50) --Create #Temp blablabla -- en temp tbl Declare CursorFetter Cursor For ( Select VareNo From TblVareno) -- Nu har alle vareNo Open CursorFetter Fetch Next From CursorFetter into @VareNo While @@Fetch_status = 0 Begin Select nogle_ting Into #Temp From tblProdukter Where VareNo = @VareNo And validfrom <= @validfrom End Close CursorFetter Deallocate CursorFetter Go
18. december 2003 - 23:45
#2
hvis du har tabellen mytable defineret så kolonnerne matcher - så kan du blot gøre således: insert into mytable ( Varenummer, Produktnavn, halvfabrikata, Kategori, ValleNorm, FedtNorm, ProteinNorm, Lønnorm, ProduktType, secundakl2vnr, secundakl2proc, secundakl3vnr, secundakl3proc, Secunda, secundaproc, prima, Oprettetdato, ValidFrom) SELECT dbo.TblVareNummer.Varenummer, dbo.TblProdukter.Produktnavn, dbo.TblProdukter.halvfabrikata, dbo.TblProdukter.Kategori, dbo.TblProdukter.ValleNorm, dbo.TblProdukter.FedtNorm, dbo.TblProdukter.ProteinNorm, dbo.TblProdukter.Lønnorm, dbo.TblProdukter.ProduktType, dbo.TblProdukter.secundakl2vnr, dbo.TblProdukter.secundakl2proc, dbo.TblProdukter.secundakl3vnr, dbo.TblProdukter.secundakl3proc, dbo.TblProdukter.Secunda, dbo.TblProdukter.secundaproc, dbo.TblProdukter.prima, dbo.TblProdukter.Oprettetdato, dbo.TblProdukter.ValidFrom FROM dbo.TblProdukter INNER JOIN dbo.TblVareNummer ON dbo.TblProdukter.Varenummer = dbo.TblVareNummer.Varenummer AND dbo.TblProdukter.ValidFrom IN (SELECT MAX(t.validfrom) FROM tblprodukter t WHERE t.varenummer = tblvarenummer.varenummer) WHERE (dbo.TblProdukter.ValidFrom <= @validfrom)