VbzCart/docs/queries/qryTitles ItTyps grpItems: Difference between revisions

From Woozle Writes Code
< VbzCart‎ | docs‎ | queries
Jump to navigation Jump to search
imported>Woozle
(corrected the used-by)
 
(No difference)

Latest revision as of 01:56, 25 February 2024

About

  • Purpose: This is a subquery for Template:Vbzcart/query; all the summing across items within a Title-ItTyp pair is done here, then the results are joined back with Titles so we have all the information to display.
  • Requires: Template:Vbzcart/query
  • Used by: Template:Vbzcart/query
  • Notes:
    • This is essentially the same query as Template:Vbzcart/query but grouped by ID_Title (and ID_ItTyp) instead of ID_Dept (and ID_ItTyp).
    • I originally had a HAVING cntInStock at the end of this, but that results in only stock items showing as available at all. If this filtering is needed for something, it will have to be expressed in some other way.
  • History:
    • 2008-04-04 Grouping by GrpCode (and GrpDescr and GrpSort) is not necessary, and creates clutter in the title display if used. Certain items which have subtypes only distinguished by the group code (e.g. SD-NF-320 comes in both black and tie-dye) use these fields, but the page-generation code looks for different subtypes in the cat_items data and displays a new subtype header whenever GrpDescr changes. Maybe later on we'll include ID_CtgGroup in cat_items and pull GrpCode, GrpDescr, and GrpSort from the appropriate table(s?), but for now we store the values explicitly in cat_items and rely on proper sorting.
      • If subtypes are not being properly disambiguated within the title display, make sure the GrpDescr fields are being given a value (description). This is only necessary when the item type (ID_ItTyp) is the same.
    • 2008-04-13 replaced cat_items with qryCat_Items_Stock because qtyForSale is no longer being cached in cat_items.qtyInStock

SQL

<section begin=sql /><mysql>CREATE OR REPLACE VIEW qryTitles_ItTyps_grpItems AS SELECT

 ID_Title, ID_ItTyp,
 SUM(IF(isForSale,1,0)) AS cntForSale,
 SUM(IF(isInPrint,1,0)) AS cntInPrint,
 SUM(IF(qtyForSale>0,1,0)) AS cntStkForSale,
 SUM(qtyForSale) AS qtyForSale,
 MIN(PriceSell) AS currMinPrice,
 MAX(PriceSell) AS currMaxPrice

FROM qryCat_Items_Stock AS i WHERE isForSale GROUP BY ID_ItTyp, ID_Title;</mysql> <section end=sql />