Difference between revisions of "VbzCart/queries"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(→‎Views: qryCat_Depts; need depts)
(→‎new queries: many more queries no longer in db)
 
(240 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
[[VbzCart]]: [[VbzCart data views|data views]]
 
[[VbzCart]]: [[VbzCart data views|data views]]
 
==Overview==
 
==Overview==
"Views" in [[MySQL]] are like SELECT "queries" in [[MS Access]], i.e. they pull data from existing tables and are themselves usable as data sources in much the same way that tables are (and in which result sets from functions are not).
+
What [[MS Access]] calls "queries" are called "views" in [[MySQL]], i.e. they pull data from existing tables and are themselves usable as data sources in much the same way that tables are (and in which result sets from functions are not).
==Views==
+
 
 
Some common prefixes:
 
Some common prefixes:
 
* '''qryCbx_''': queries used for filling comboboxes. The unique ID will always be the first field, and the text to display will always be the second field; additional fields may be provided for use in further '''qryCbx_''' queries which show a subset of the results.
 
* '''qryCbx_''': queries used for filling comboboxes. The unique ID will always be the first field, and the text to display will always be the second field; additional fields may be provided for use in further '''qryCbx_''' queries which show a subset of the results.
 
* '''qryCat_''': queries which build catalog numbers or information by joining multiple tables. (In Access, the convention was '''qryCatNum_'''.)
 
* '''qryCat_''': queries which build catalog numbers or information by joining multiple tables. (In Access, the convention was '''qryCatNum_'''.)
===qryCat_Depts===
+
==by category==
<sql>SELECT
+
===Inactive===
  d.ID,
+
* [[/deprecated]]: queries we're trying to [[/discarded|get rid of]], once we're sure nothing uses them
  d.Name,
+
* [[/discarded]]: queries apparently no longer in use
  d.Sort,
+
 
  d.CatKey,
+
===Catalog===
  d.ID_Supplier,
+
* [[/qryCat_Depts]]
  CONCAT_WS('-',s.CatKey,d.CatKey) AS CatNum
+
* '''Title'''-centric:
FROM depts AS d LEFT JOIN suppliers AS s ON d.ID_Supplier=s.ID;</sql>
+
** [[/qryTitles_Item_info]]
===qryCat_Titles===
+
** [[/qryTitles_ItTyps_grpItems]]
<sql>SELECT
+
** [[/qryTitles_ItTyps_ItTyps]]
  t.ID,
+
** [[/qryTitles_ItTyps_Titles]]
  t.Name,
+
** [[/qryTitles_Imageless]] - titles with no active images
  CONCAT_WS('-',d.CatNum,t.CatKey) AS CatNum,
+
** [[/qryCat_Titles]]
  d.ID_Supplier,
+
** [[/qryCat_Titles_Item_stats]] -- item/stock statistics
  t.ID_Dept,
+
** [[/qryCat_Titles_Item_count]] -- simpler query for maintenance
  t.DateAdded,
+
** [[/qryCat_Titles_web]]
  t.RstkMin AS QtyMin_Rstk,
+
** [[/qryCbx_Titles]]
  t.Descr,
+
* '''Item'''-centric:
  t.Notes,
+
** [[/qryCat_Items_Stock]]: cat_items with stock info
  t.Supplier_CatNum AS Supp_CatNum
+
* '''ItTyp'''-centric:
FROM titles AS t LEFT JOIN qryCat_Depts AS d ON t.ID_Dept=d.ID;</sql>
+
** [[/qryItTypsDepts_grpItems]]
===qryCat_Items===
+
** [[/qryItTypsDepts_ItTyps]]
<sql>SELECT
+
* '''Image'''-centric:
  i.ID,
+
** [[/qryImgs_byTitle]]: Image info by Title
  i.ID_Title,
+
* [[/qryCat_pages]]: maps http path info to catalog entities
  (t.ID IS NOT NULL) AS TitleExists,
+
====Catalog Items====
  t.ID_Supplier,
+
* [[/qryCbx_Items_data]]
  i.PriceSell,
+
** [[/qryCbx_Items]]
  i.PriceList,
+
** [[/qryCbx_Items_active]]
  i.PriceBuy,
+
** [[/qryCbx_Items_for_sale]]
  i.CatNum,
+
** [[/qryCbx_Items_opt]]: abbreviated version for contexts where Title is already known
  t.CatNum AS Title_CatNum,
+
* [[/qryItems_prices]]: what uses this?
  t.Name AS Title_Name,
+
====Catalog Sources====
  i.ID_ItTyp,
+
* [[/qryCtg_Sources_active]]
  i.ID_ItOpt,
+
* [[/qryCtg_Items_updates]]
  i.ItOpt_Descr,
+
* [[/qryCtg_Items_updates_joinable]]
  i.ItOpt_Sort,
+
* [[/qryCtg_Items_active]]
  CONCAT(t.Name, IF(i.ItOpt_Descr IS NULL,'',CONCAT(' (',i.ItOpt_Descr,')')) AS Descr,
+
* <s>[[/qryCtg_build_sub]]</s>
  i.Supp_CatNum,
+
* <s>[[/qryCtg_build]]</s>
  i.isForSale,
+
* '''[[VbzCart catalog building|building]] process''':
  i.isPulled,
+
** [[/qryCtg_Items_forUpdJoin]]
  i.QtyMin_Stk,
+
** [[/qryCtg_Upd_join]]
  t.QtyMin_Rstk AS QtyMin_Rstk_Title
+
** [[/qryCtg_src_dups]]
FROM cat_items AS i LEFT JOIN qryCat_Titles AS t on i.ID_Title=t.ID
+
** [[/qryCtgCk_dup_keys]]
ORDER BY t.ID IS NOT NULL, i.CatNum, i.ItOpt_Sort;</sql>
+
 
===qryCbx_Items===
+
====Catalog Topics====
<sql>SELECT
+
* '''titles x topics''':
  i.ID,
+
** [[/qryTitleTopic_Titles]]: more title information
  CONCAT(
+
** [[/qryTitleTopic_Topics]]: more topic information
    IF(i.isPulled,CONCAT('!PULLED (',i.ID,')'),''),
+
** [[/qryTitleTopic_Title_avail]]: title availability information
    i.CatNum,
+
===Ordering===
    IF(i.Supp_CatNum IS NULL,'',CONCAT('[',i.SuppCatNum,']')),
+
====Carts====
    IF(i.isForSale,'',' n/a'),
+
* [[/qryCarts_info]]
    i.Descr)
+
** [[/qrySub_Carts_info_data]]
      AS Descr,
+
** [[/qrySub_Carts_info_items]]
  i.isForSale
+
====Customers====
FROM qryCat_Items AS i
+
* [[/qryCustAddrs]]
ORDER BY NOT i.isPulled, i.isForSale, i.CatNum;</sql>
+
* [[/qryCbx_CustNames]]
 +
====Orders====
 +
* [[/qryCbx_Orders]]
 +
* [[/qryOrderLines_notPkgd]]
 +
* [[/qryOrders_Active]]
 +
* [[/qryOrderLines_Active]]
 +
* [[/qtyOrderItems_Active]]
 +
* [[/qry_PkgItem_qtys_byOrder]]
 +
* [[/qryOrdItms_Pkg_qtys]]
 +
* [[/qryOrdItms_open]]
 +
* [[/qryItms_open]]
 +
* [[/qryItms_to_restock_union]]
 +
* [[/qryItms_to_restock]]
 +
====Packages====
 +
* [[/qryPkgLines_byOrdLine_andItem]]
 +
* [[/qryOrdLines_PkgdQtys]]
 +
* [[/qryOrdLines_open]]
 +
* [[/qryOrders_Pulled]]
 +
* [[/qryPkgs_Pull_status]]
 +
* for reports:
 +
** [[/qryRpt_Pkg_Lines]]
 +
*** [[/qryPkgLines_qtys_done]]
 +
*** <s>[[/qryPkgLines_qtys_done_ord_sum]]</s> - not used
 +
** [[/qryRpt_Pkg_Trx]]
 +
 
 +
====Restocks====
 +
* '''all restock requests''':
 +
** [[/qryRstks_info]]
 +
** [[/qryRstkReq_Item_Rcd_status]]
 +
** [[/qryRstkReq_Item_status]]
 +
*** [[/qryRstkReq_Item_status_Req_info]]
 +
*** [[/qryRstkReq_Items_expected]]: show only expected items
 +
** [[/qryCbx_RstkReq]]
 +
*** [[/qryRstkReq_by_status]]
 +
*** [[/qryRstkReq_by_PurchOrd]]
 +
* '''filtered by status''':
 +
** [[/qryRstks_active]]: not terminated = !(closed, orphaned or killed - see {{l/vc/term|restock/status}})
 +
*** [[/qryRstks_unsent]]: created but not ordered yet
 +
**** [[/qryRstkItms_unsent]]
 +
***** [[/qryRstkItms_unsent_for_order]]
 +
** [[/qryRstks_inactive]]: all the rest
 +
 
 +
====Shipping====
 +
* [[/qryPkgs_status]]
 +
 
 +
===Stock===
 +
====new queries====
 +
* [[/qryStk_Bins_w_info]]
 +
* [[/qryStk_lines_remaining]]
 +
** [[/qryStk_lines_remaining_byBin]]
 +
** [[/qryStk_lines_remaining_forSale]]
 +
*** [[/qryStkItms_for_sale]]
 +
 
 +
* [[/qryStk_items_remaining]]
 +
* [[/qryStk_byItem_byBin]]
 +
 
 +
* [[/qryStk_lines_Title_info]]
 +
 
 +
====old queries====
 +
This was the first batch of queries I created, before I had decided to go with the qry prefix as in Access.
 +
* [[/v_stk_titles_remaining]]
 +
* [[/v_stk_byItemAndBin_wItemInfo]]
 +
 
 +
===Caching===
 +
Caching should only be used for catalog display.
 +
* [[/qryCache_Flow_Procs]]

Latest revision as of 23:12, 3 March 2016

Navigation

VbzCart: data views

Overview

What MS Access calls "queries" are called "views" in MySQL, i.e. they pull data from existing tables and are themselves usable as data sources in much the same way that tables are (and in which result sets from functions are not).

Some common prefixes:

  • qryCbx_: queries used for filling comboboxes. The unique ID will always be the first field, and the text to display will always be the second field; additional fields may be provided for use in further qryCbx_ queries which show a subset of the results.
  • qryCat_: queries which build catalog numbers or information by joining multiple tables. (In Access, the convention was qryCatNum_.)

by category

Inactive

Catalog

Catalog Items

Catalog Sources

Catalog Topics

Ordering

Carts

Customers

Orders

Packages

Restocks

Shipping

Stock

new queries

old queries

This was the first batch of queries I created, before I had decided to go with the qry prefix as in Access.

Caching

Caching should only be used for catalog display.