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
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)