Difference between revisions of "VbzCart/procs/Upd TitleIttyps fr CatItems Titles"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
|  (New page: ==About== * '''Purpose''': fills {{vbzcart|table|_title_ittyps}}. * '''Input''': {{vbzcart|table|cat_items}}, {{vbzcart|table|cat_titles}} * '''Output''': {{vbzcart|table|_title_ittyps}} (...) |  (created in db) | ||
| Line 7: | Line 7: | ||
| *** Removed "WHERE i.isForSale" because this prevented the availability of discontinued items from being properly zeroed out | *** Removed "WHERE i.isForSale" because this prevented the availability of discontinued items from being properly zeroed out | ||
| *** Added cntInStock calculation; see table schema | *** Added cntInStock calculation; see table schema | ||
| + | ** '''2010-11-10'''  | ||
| + | *** Added DROP PROCEDURE for easier maintenance. | ||
| + | *** Actually created in database (procs did not get ported from L48 to Rizzo). | ||
| * '''Notes''': | * '''Notes''': | ||
| ** This is a revised version which combines two earlier procedures. | ** This is a revised version which combines two earlier procedures. | ||
| ** I had a note that "the ID_Dept field is informational, not a grouping", but I don't remember what that meant and it doesn't make sense. | ** I had a note that "the ID_Dept field is informational, not a grouping", but I don't remember what that meant and it doesn't make sense. | ||
| ==SQL== | ==SQL== | ||
| − | <section begin=sql /><mysql>CREATE PROCEDURE Upd_TitleIttyps_fr_CatItems_Titles() | + | <section begin=sql /><mysql>DROP PROCEDURE IF EXISTS Upd_TitleIttyps_fr_CatItems_Titles; | 
| + | CREATE PROCEDURE Upd_TitleIttyps_fr_CatItems_Titles() | ||
|      REPLACE INTO _title_ittyps( |      REPLACE INTO _title_ittyps( | ||
|        ID_Title, |        ID_Title, | ||
Revision as of 12:43, 10 November 2010
About
- Purpose: fills _title_ittyps.
- Input: cat_items, cat_titles
- Output: _title_ittyps (replace)
- History:
- 2007-09-20
- Removed "WHERE i.isForSale" because this prevented the availability of discontinued items from being properly zeroed out
- Added cntInStock calculation; see table schema
 
- 2010-11-10
- Added DROP PROCEDURE for easier maintenance.
- Actually created in database (procs did not get ported from L48 to Rizzo).
 
 
- 2007-09-20
- Notes:
- This is a revised version which combines two earlier procedures.
- I had a note that "the ID_Dept field is informational, not a grouping", but I don't remember what that meant and it doesn't make sense.
 
SQL
<mysql>DROP PROCEDURE IF EXISTS Upd_TitleIttyps_fr_CatItems_Titles; CREATE PROCEDURE Upd_TitleIttyps_fr_CatItems_Titles()
   REPLACE INTO _title_ittyps(
     ID_Title,
     ID_ItTyp,
     ID_Dept,
     TitleName,
     cntForSale,
     cntInPrint,
     cntInStock,
     qtyInStock,
     currMinPrice,
     currMaxPrice)
   SELECT
     i.ID_Title,
     i.ID_ItTyp,
     t.ID_Dept,
     t.Name AS TitleName,
     i.cntForSale,
     i.cntInPrint,
     i.cntInStock,
     i.qtyInStock,
     i.currMinPrice,
     i.currMaxPrice
    FROM (
      SELECT
        ID_Title, ID_ItTyp,
        SUM(IF(isForSale,1,0)) AS cntForSale,
        SUM(IF(isInPrint,1,0)) AS cntInPrint,
        SUM(IF(qtyInStock>0,1,0)) AS cntInStock,
        SUM(qtyInStock) AS qtyInStock,
        MIN(PriceSell) AS currMinPrice,
        MAX(PriceSell) AS currMaxPrice
      FROM cat_items AS i
      GROUP BY ID_Title, ID_ItTyp
    ) AS i LEFT JOIN cat_titles AS t ON i.ID_Title=t.ID;</mysql>