:O

->

$query = "SELECT SQL_CALC_FOUND_ROWS p.product_id,m.naam AS maatschappij,p.naam,p.standaardpremie,p.type,
						v2.p10 AS vergoeding_gvs_pct,
						v2.p200 AS vergoeding_gvs_max_per_jaar,
						v2.tekst AS vergoeding_gvs_opmerking,
						v3.p10 AS vergoeding_eigen_bijdrage_gvs_pct,
						v3.p200 AS vergoeding_eigen_bijdrage_gvs_max_per_jaar,
						v3.tekst AS vergoeding_eigen_bijdrage_gvs_opmerking,
						v4.p10 AS vergoeding_overig_pct,
						v4.p200 AS vergoeding_overig_max_per_jaar,
						v4.tekst AS vergoeding_overig_opmerking,
						v5.p10 AS vergoeding_zelfzorg_pct,
						v5.p200 AS vergoeding_zelfzorg_max_per_jaar,
						v5.tekst AS vergoeding_zelfzorg_opmerking,
						a.naam AS artikel,
						f.naam AS fabrikant,
						a.rvg1,
						a.gvs,
						pr.preferent,
						a.receptplichtig,
						a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365) AS kosten,
						
						a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365) - # je betaald de prijs minus de vergoeding
							IF(a.gvs='ja', 
									IF(pr.preferent='nee',
										0,	# niet-preferentie middelen worden niet vergoed
										GREATEST(
											LEAST(
												a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*(IFNULL(v2.p10,0)/100),
												IFNULL(v2.p200,1000000000)
											) - (
													a.eigen_bijdrage/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365) - 
													LEAST(
														a.eigen_bijdrage/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*(IFNULL(v3.p10,0)/100),
														IFNULL(v3.p200,1000000000)
													)	
												), # Vergoeding door basis met aftrek eigen bijdrage (eigen bijdrage kan evt. ook weer vergoed worden door aanvullende verzekering)
										0)	# nooit een negatieve vergoeding (veroorzaakt door aftrekken eigen bijdrage)
									),
								IF(a.receptplichtig='ja',
									LEAST(
										a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*IFNULL(v4.p10,0)/100,
										IFNULL(v4.p200,1000000000)
									), # evt. vergoeding van niet GVS-middelen die receptprichtig zijn
									LEAST(
										a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*IFNULL(v5.p10,0)/100,
										IFNULL(v5.p200,1000000000)
									) # evt. vergoeding van niet GVS-middelen die niet receptprichtig zijn
								)
							) AS zelf_betalen,
								
						IF(a.gvs='ja',
							IF(pr.preferent='nee',
								0,	# niet-preferentie middelen worden niet vergoed
								LEAST(
									a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*IFNULL(v2.p10,0)/100,
									IFNULL(v2.p200,1000000000)
								) - (a.eigen_bijdrage/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365))
							),
						0) AS vergoeding_basis,
								
						IF(a.gvs='ja',
								IF(pr.preferent='nee',
									0,	# niet-preferentie middelen worden niet vergoed
									GREATEST(
										LEAST(a.eigen_bijdrage/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*IFNULL(v3.p10,0)/100,IFNULL(v3.p200,1000000000)),	# eigen bijdrage kan evt. ook weer vergoed worden door aanvullende verzekering
										0	# nooit een negatieve vergoeding (veroorzaakt door aftrekken eigen bijdrage)
									)),
								IF(a.receptplichtig='ja',
									LEAST(a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*IFNULL(v4.p10,0)/100,IFNULL(v4.p200,1000000000)), # evt. vergoeding van niet GVS-middelen die receptplichtig zijn
									LEAST(a.prijs/a.inkoopaantal*IFNULL({AANTAL},a.ddd*365)*IFNULL(v5.p10,0)/100,IFNULL(v5.p200,1000000000)) # evt. vergoeding van niet GVS-middelen die niet receptplichtig zijn
								)
							) AS vergoeding_av
							
						FROM product p
						INNER JOIN maatschappij m ON m.maatschappij_id = p.maatschappij_id
						LEFT JOIN vwd_sheet_label v2 ON v2.vwd_sheet_id = p.vwd_sheet_id AND v2.vwd_label_id = ".$labels['vergoeding_gvs']."
						LEFT JOIN vwd_sheet_label v3 ON v3.vwd_sheet_id = p.vwd_sheet_id AND v3.vwd_label_id = ".$labels['vergoeding_eigen_bijdrage_gvs']."
						LEFT JOIN vwd_sheet_label v4 ON v4.vwd_sheet_id = p.vwd_sheet_id AND v4.vwd_label_id = ".$labels['vergoeding_overig']."
						LEFT JOIN vwd_sheet_label v5 ON v5.vwd_sheet_id = p.vwd_sheet_id AND v5.vwd_label_id = ".$labels['vergoeding_zelfzorg']."
						JOIN med_artikel a ON a.artikel_id IN(".$this->dbImplode($data['artikel_id']).")
						INNER JOIN med_fabrikant f ON a.fabrikant_id = f.fabrikant_id
						INNER JOIN med_medicijn mm ON mm.medicijn_id = a.medicijn_id
						LEFT JOIN med_preferent pr ON p.maatschappij_id = pr.maatschappij_id AND a.artikel_id = pr.artikel_id
						WHERE p.maatschappij_id = ".(int)$_SESSION['medicijnen']['verzekeraar']."
						AND p.actief = 'ja'
						AND p.tonen_medicijnvergoedingen = 'ja'
						ORDER BY {ORDER_BY}
						LIMIT {LIMIT_START},30";
@Niels: Nette query. Erg duidelijk om te lezen zo op het eerste gezicht.
Waarvoor is het als ik vragen mag? *niet nieuwsgierig, maar vraag het me gewoon af :P*

Nette query. Erg duidelijk om te lezen zo op het eerste gezicht.

Dankjewel


Waarvoor is het als ik vragen mag?

Beetje lastig uit te leggen, en i.v.m beroepsgeheim mag ik hem ook niet helemaal ontleden voor je.. Kort samen gevat is het selecteren van verzekeringsmaatschappijen, met alle toeters en bellen:)

Beroepsgeheim?! Had je die query hier dant wel mogen plaatsen? Ontleden dan kunnen we zelf ook nog wel.
Steff an op 11/09/2010 11:20:44

Beroepsgeheim?! Had je die query hier dan wel mogen plaatsen? Ontleden dan kunnen we zelf ook nog wel.


Zat ik ook zo te denken, de meesten kunnen die query zelf wel ontleden en er grotendeels uit afleiden welke informatie je selecteert :p


Verkeerde edit knop

"Beroepsgeheim?! Had je die query hier dant wel mogen plaatsen? Ontleden dan kunnen we zelf ook nog wel."

Weet ik.. Vandaar dat ik hem in de koffiehoek plaatste:)

BTW: Ik heb ook stukken eruit gehaald, omdat daar namen in voor kwamen.

Reageren