Predmet:Re: stored procedure Kako?
Jas se izvinuvam mislev deka sum go stavil resenieto bidejki ova go resiv ne e dovrseno no izrabotiv stored procedura koja sega zasega bi trebalo da zadovoli eden del od potrebite.
Eve vaka go resiv ova :
Tocno deka vo ova moe queri ima i drugi funkcii koi vo osnova se site slicni i imaat slicna namena a toa e presmetka na DDV i ceni BEZ DDV i ceni SO DDV .
Eve Stored kako izgleda:
PreuzmiIzvorni kôd (SQL):Proc [dbo].[spPLT]
@IDFaktura INT
AS
BEGIN
SELECT
tblFaktura_Stavki.ID_Stavka
, tblFaktura_Stavki.Barkod
, tblArtikli.Artikal_Ime AS Stavka
, tblFaktura_Stavki.Ed_Mera
, tblFaktura_Stavki.Ed_Cena
, tblFaktura_Stavki.Kolicina
, tblFaktura_Stavki.Popust
, tblFaktura_Stavki.DDV
, tblFaktura_Stavki.Posledna_Prod_Cena AS Prodazna_So_DDV
, tblFaktura_Stavki.Ed_Cena*tblFaktura_Stavki.DDV AS VkunoNabavnaSoDDV
, CAST(isnull(tblFaktura_Stavki.DDV,0) AS DECIMAL) / 1000 AS DDVrocent
, (dbo.PresmetkaDDV (tblFaktura_Stavki.Ed_Cena,tblFaktura_Stavki.DDV))*tblFaktura_Stavki.Kolicina AS VkDDV
-- , (dbo.PresmetkaDDV (180.5,tblFaktura_Stavki.DDV))* tblFaktura_Stavki.Kolicina as VkDDV
, tblFakturi.ID_Faktura
, tblFakturi.Faktura_Broj
, tblFakturi.Tip_Faktura
, tblFakturi.DATA
, tblFakturi.Valuta
, tblFakturi.Po_Dokument
, tblFakturi.Magacin
, tblKomitenti.Komitent_Firma
, tblFakturi.Komitent_Partner
, tblFakturi.VoMagacin
FROM tblArtikli INNER JOIN (tblKomitenti INNER JOIN (tblFakturi INNER JOIN tblFaktura_Stavki ON tblFakturi.ID_Faktura = tblFaktura_Stavki.Faktura_Br) ON tblKomitenti.ID_Komitent = tblFakturi.Komitent_Partner) ON tblArtikli.ID_Artikal = tblFaktura_Stavki.Stavka
WHERE tblFakturi.ID_Faktura = @IDFaktura
ORDER BY tblFaktura_Stavki.ID_Stavka;
I dvete funkcii
PreuzmiIzvorni kôd (SQL):FUNCTION [dbo].[DDVK]
(
-- Add the parameters for the function here
@DDVA INT
)
RETURNS DECIMAL(18, 2)
AS
BEGIN
IF @DDVA = 24 RETURN 1.24;
IF @DDVA = 23 RETURN 1.23;
IF @DDVA = 22 RETURN 1.22;
IF @DDVA = 21 RETURN 1.21;
IF @DDVA = 20 RETURN 1.2;
IF @DDVA = 19 RETURN 1.19;
IF @DDVA = 18 RETURN 1.18;
IF @DDVA = 17 RETURN 1.17;
IF @DDVA = 16 RETURN 1.16;
IF @DDVA = 15 RETURN 1.15;
IF @DDVA = 14 RETURN 1.14;
IF @DDVA = 13 RETURN 1.13;
IF @DDVA = 12 RETURN 1.12;
IF @DDVA = 11 RETURN 1.11;
IF @DDVA = 10 RETURN 1.1;
IF @DDVA = 9 RETURN 1.09;
IF @DDVA = 8 RETURN 1.08;
IF @DDVA = 7 RETURN 1.07;
IF @DDVA = 6 RETURN 1.06;
IF @DDVA = 5 RETURN 1.05;
IF @DDVA = 4 RETURN 1.04;
IF @DDVA = 3 RETURN 1.03;
IF @DDVA = 2 RETURN 1.02;
IF @DDVA = 1 RETURN 1.01;
/*
If @DDVA = 0 return 0;
*/
RETURN 0;
END
UNCTION [dbo].[PresmetkaDDV]
(@Cena FLOAT , @Stapka INT)
--RETURNS decimal(18, 8)
RETURNS FLOAT
AS
BEGIN
IF @Stapka = 0 RETURN @Cena - @Cena;
IF @Stapka <> 0 RETURN @Cena - (@Cena / dbo.DDVK(@Stapka));
/*
If @DDVA = 0 return 0;
*/
RETURN 0;
END
go vidov i ona predhodno sto mi predlozi za ovaj koeficient sto go koristam za presmetka no toa ne mi e prakticno bidejki koeficientot vo ovaj slucaj se dvizi od 1.01 do 1.24 no nekogas mi treba da bode 0.01 ili razlicno od ova no toa ne e bitno sega bidejki ova za pocetok e odlicno skolo ,isto taka interesno e toa sto go zabelezav dokolku mnozis delis ili vrsis nekoi operacii na dva podatoci od tipot na Float i Integer togas dobivas nevaliden podatok moze da bide bez decimali ili ako e pomal od 1 togas dobivas 0 ( Zaklicaok vo SQL server sekogas vrsi operacii nad isti tip na podatok ).
Ovaa tema nema da ja zatvoram ke imam uste prasajna no neznam kako ke se odvivaat rabotite .
I uste edna molba Dali moze eden primer od Cristal Report odnosno Report i Subreport koi imaat
dva razlicni DataSource od dve stored proceduri odnosto mi treba na primer Faktura kako Report i
Rekapitulacija kako Subreport koja ke sodrzi nekoi grupirani i sumirani stavki od fakturata.
pozdrav