Quantcast
Channel: Für Entwickler: SQL Server Forum
Viewing all articles
Browse latest Browse all 1772

Case When Berechnung

$
0
0
SELECT  d.I_CUSTOMER_M, d.S_CUSTNO, d.S_CUSTNAME1, d.D_DELIVDATE, d.I_DELIVERY_P, d.S_DELIVNO,  dp.S_ITEMDESC1, ig1.S_DESCRIPTION AS Artikelgruppe,ig2.S_DESCRIPTION AS Warengruppe, ig3.S_DESCRIPTION AS Produktgruppe,dp.N_ITEMQUANTITY , d.B_RET,
		CASE WHEN N_PRICEUNIT = 10 AND d.b_ret = 0 THEN  dp.N_DISCOUNTPRICE/10 * dp.n_packquantity
			WHEN N_PRICEUNIT = 100 AND d.b_ret = 0 THEN dp.N_DISCOUNTPRICE/100 * dp.n_packquantity
			WHEN N_PRICEUNIT = 1000 AND d.b_ret = 0 THEN dp.N_DISCOUNTPRICE/1000 * dp.n_packquantity
			 WHEN N_PRICEUNIT = 10 AND d.b_ret = 1 THEN  dp.N_DISCOUNTPRICE/10 * dp.n_packquantity *-1
			WHEN N_PRICEUNIT = 100 AND d.b_ret = 1 THEN dp.N_DISCOUNTPRICE/100 * dp.n_packquantity * -1
			WHEN N_PRICEUNIT = 1000 AND d.b_ret = 1 THEN dp.N_DISCOUNTPRICE/1000 * dp.n_packquantity *-1
			ELSE dp.N_DISCOUNTPRICE * dp.N_PACKQUANTITY
			END AS Umsatz,
		CASE WHEN N_PRICEUNIT = 10  AND d.b_ret = 0 THEN dp.N_DISCOUNTPRICE/10 * dp.n_packquantity  - dp.N_PURCHASEPRICE/10 * dp.N_packquantity
			 WHEN N_PRICEUNIT = 100  AND d.b_ret = 0 THEN dp.N_DISCOUNTPRICE/100 * dp.n_packquantity  - dp.N_PURCHASEPRICE/100 * dp.N_packquantity
			 WHEN N_PRICEUNIT = 1000  AND d.b_ret = 0 THEN dp.N_DISCOUNTPRICE/1000 * dp.n_packquantity  - dp.N_PURCHASEPRICE/1000 * dp.N_packquantity
			 WHEN N_PRICEUNIT = 10  AND d.b_ret = 1 THEN dp.N_DISCOUNTPRICE/10 * dp.n_packquantity  - dp.N_PURCHASEPRICE/10 * dp.N_packquantity * -1
			 WHEN N_PRICEUNIT = 100  AND d.b_ret = 1 THEN dp.N_DISCOUNTPRICE/100 * dp.n_packquantity  - dp.N_PURCHASEPRICE/100 * dp.N_packquantity *-1
			 WHEN N_PRICEUNIT = 1000  AND d.b_ret = 1 THEN dp.N_DISCOUNTPRICE/1000 * dp.n_packquantity  - dp.N_PURCHASEPRICE/1000 * dp.N_packquantity *-1
		ELSE dp.N_DISCOUNTPRICE * dp.n_packquantity  - dp.N_PURCHASEPRICE * dp.N_packquantity
		END  AS DB 

FROM    sao.DELIVERY_P d, sao.DELIVPOS_P dp, sao.ITEMGROUP1_P ig1, sao.ITEMGROUP2_P ig2, sao.ITEMGROUP3_P ig3

WHERE  Datepart(yyyy, Getdate()) - Datepart(yyyy, d.d_delivdate) <= 3
       AND d.dt_deleted IS NULL
       AND d.I_DELIVERY_P > 0
	   AND d.I_DELIVERY_P = dp.I_DELIVERY_P
	   AND dp.I_ITEMGROUP1_P = ig1.I_ITEMGROUP1_P
	   AND dp.I_ITEMGROUP2_P = ig2.I_ITEMGROUP2_P
	   AND dp.I_ITEMGROUP3_P = ig3.I_ITEMGROUP3_P
So eigentlich wahrscheinlich relativ simpel, aber irgendwie möchte es nicht funktionieren. Und zwar müsste überall wo B_RET = 1 ist das Ergebnis im negativen Bereich raus kommen, er gibt es mir aber noch immer als positiv aus wodurch dann natürlich die Umsatz Zahlen verfälscht sind. Wie müsste es denn richtig gehen?

Viewing all articles
Browse latest Browse all 1772

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>