[ adopilot @ 09.06.2007. 10:34 ] @
Poštovani !

Problem koji ću vas ja moliti da riješimo skupa je slijedeći

Koristim MS Sql server 2005 i razvijam dio aplikacije koji će sam genrerisati narudžbu prema centralnom skladištu
na osnovu prodaje u proteklom periodu i trenutnog stanja na dislociranom skladištu sistem će praviti narudžbu
problem mi se javlja zato jer neću u centralnom skladištu da raspakujem komercionalna pakovanja i hocu da sql upitom naručenu količinu korigujem tako da odgovara određenom broju paketa ili paleta.

Primjer ako je sedimična prodaja bila 21 komad i to odgovra optimumu robe ja hoću da sql usporedi prodanu količinu sa poljem u kojem upisujem broj komada u komercialnom pakovanju naprimjer 10 i da se naručana količina sama koriguje i to da bude 20 komada kako ekipa u centralnom skladištu ne bih morala da raspakuje paket od 10 da bi dodala samo jedan komad

Idealan upit bi bio kada bi se čak i mogao popeti na veću količinui pa u slučaju kada je sedmična prodaja bila 19 a komercilno pakovanje neka je 10 da se naručan količina koriguje na 20 komada


U tablici koju pravim DTS om pojavljuu se 3 kolone ja bih htjeo da je 4 korigovana

[SIFRA ART]¸ [Stvarna narudžba], [pakovanje], [korigovana narudžba]

XXXXXXX, 21, 10, 20,

YYYYYYY , 25, 8, 24,

zzzzzzzzzzz, 264 , 50, 250,


/*-- Idealno bi bilo i kada bi h moglo se radi i po slijedećim principma (da SQL i doda količinu kako bi se korigovao)--*/


121212121v, 97, 120, 120,


2131231312 , 61, 8, 64,



Ako imam kolone 1,2, i 3 na koji način izračunati kolonu 4

Unapriejd zahvalan
Admir
[ misk0 @ 10.06.2007. 12:38 ] @
Ideja: Dijelis Stvarna_naruzba / pakovanje - od tog rezultata uzimas dio iza decimalnog zaraza i gledas : ako je veci od 0.5 na 'broj ispred zaraeza' dodajes +1 i mnozeci sa 'pakovanjem' dobijas korigovinu_narudzbu. Ukoliko je manji od 0.5 mnozis broj ispred zareza sa pakovanjem i dobijas opet korigovanu narudzbu.
[ adopilot @ 11.06.2007. 09:47 ] @
Citat:
Ideja: Dijelis Stvarna_naruzba / pakovanje - od tog rezultata uzimas dio iza decimalnog zaraza i gledas : ako je veci od 0.5 na 'broj ispred zaraeza' dodajes +1 i mnozeci sa 'pakovanjem' dobijas korigovinu_narudzbu. Ukoliko je manji od 0.5 mnozis broj ispred zareza sa pakovanjem i dobijas opet korigovanu narudzbu



Koju funkciju da koristim za razlaganje broja na decimalni dio i osnovni broj da li je to ROUND ili ima neka slična.
Hvala
[ jutikus @ 11.06.2007. 17:21 ] @
Ok. ovo moze da se resi sa SQL-om ali po meni je ovo vise pitanje poslovne logike. Npr ako ti je naruzba 51 kom a pakovanje 100, to je skoro 100% vise!! ako se to pomnozi sa jedinicnom cenom proizvoda i na kraju suma svega toga, moze poprilicno da poremeti i materijala i finansijska stanja narudzbe i isporuke, i na kraju neko bude prozvan zbog tih razlika. Najbolje je da odgovorna osoba propise pravila za zaokruzivanje ( na dole ili gore) i na osnovi toga je vec mnogo lakse...

Malo je off, ali cisto iz iskustva....
[ fpedja @ 21.06.2007. 14:05 ] @
Citat:
adopilot: Koju funkciju da koristim za razlaganje broja na decimalni dio i osnovni broj da li je to ROUND ili ima neka slična.
Hvala

ROUND je zaokruzivanje a TRUNC je odsecanje. Ako sam dobro shvatio tebi treba: [broj]-TRUNC[broj] pa to uporedjujes da li je vece od 0.5. Odnosno dobio si deo iza decimalne tacke.