mirror of
				https://github.com/grocy/grocy.git
				synced 2025-10-31 18:49:38 +00:00 
			
		
		
		
	
		
			
	
	
		
			27 lines
		
	
	
		
			685 B
		
	
	
	
		
			MySQL
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			685 B
		
	
	
	
		
			MySQL
		
	
	
	
	
	
|   | CREATE VIEW stock_average_product_shelf_life
 | ||
|  | AS
 | ||
|  | SELECT
 | ||
|  | 	p.id,
 | ||
|  | 	CASE WHEN x.product_id IS NULL THEN -1 ELSE AVG(x.shelf_life_days) END AS average_shelf_life_days
 | ||
|  | FROM products p
 | ||
|  | LEFT JOIN (
 | ||
|  | 		SELECT
 | ||
|  | 			sl_p.product_id,
 | ||
|  | 			JULIANDAY(MIN(sl_p.best_before_date)) - JULIANDAY(MIN(sl_c.used_date)) AS shelf_life_days
 | ||
|  | 		FROM stock_log sl_p
 | ||
|  | 		JOIN (
 | ||
|  | 				SELECT
 | ||
|  | 					product_id,
 | ||
|  | 					stock_id,
 | ||
|  | 					MAX(used_date) AS used_date
 | ||
|  | 				FROM stock_log
 | ||
|  | 				WHERE transaction_type = 'consume'
 | ||
|  | 				GROUP BY product_id, stock_id
 | ||
|  | 			) sl_c
 | ||
|  | 			ON sl_p.stock_id = sl_c.stock_id
 | ||
|  | 		WHERE sl_p.transaction_type = 'purchase'
 | ||
|  | 		GROUP BY sl_p.product_id, sl_p.stock_id
 | ||
|  | 	) x
 | ||
|  | 	ON p.id = x.product_id
 | ||
|  | GROUP BY p.id;
 |