{"database": "fishbowl_archive", "table": "dataexport", "is_view": false, "human_description_en": "", "rows": [[5, "Select\r\nSO.*,\r\nMO.*\r\nFrom\r\nSO\r\nInner Join\r\nMO on SO.Num = MO.Num\r\nWhere\r\nSO.billToName like '%Rockwell%' ;\r\n", "2025-03-05 16:11:17.296000", "2025-03-05 16:11:17.296000", "", 46, "SO and MO Query"], [8, "Select \r\nbomitem.description,\r\npart.num,\r\npart.description,\r\nbomitem.quantity,\r\nbom.num,\r\nbom.activeFlag,\r\nbom.description\r\nFrom \r\nbomitem\r\nInner Join part on bomitem.partid = part.id\r\nInner Join bom on bomitem.bomid = bom.id\r\nwhere\r\npart.num like '10112'\r\nAnd bom.activeflag = 1;", "2025-03-26 12:44:30.350000", "2025-10-29 18:46:39.889000", "Enter the part number on line 12  as 'XXX' as the part you wish to see a list of boms where it is used and then export.  Only returns active BOMs", 46, "Where used"], [9, "Select \r\nAccountID,\r\nname\r\nFrom \r\ncustomer;", "2025-04-04 13:00:42.527000", "2025-04-04 13:58:58.143000", "", 46, "Customer List with Account Number"], [10, "SELECT partnum, unitcost, MAX(datelastfulfillment) AS last_fulfillment_date\r\nFROM POitem\r\nGROUP BY partnum\r\nOrder by partnum;", "2025-04-04 17:28:54.806000", "2025-04-04 17:44:45.716000", "Shows the last purchase price of a component", 46, "Last Purchase Price"], [11, "Select * From PO where customfields like '%D%'", "2025-05-20 13:15:04.686000", "2025-05-28 12:37:33.723000", "", 46, "NPI PO Report"], [12, "Select * From SO where customfields like '%D%'", "2025-05-28 12:38:30.924000", "2025-05-28 12:38:30.924000", "", 46, "NPI SO Report"], [13, "Select * \r\nFrom BOM \r\nwhere URL Like \"F%\"", "2025-05-28 12:41:03.545000", "2025-05-28 12:44:26.052000", "", 46, "URL"], [14, "select\r\nSo.num,\r\nSOitem.soLineItem,\r\nso.billToName,\r\nso.customerpo,\r\nso.salesman,\r\nsoitem.productnum,\r\nsoitem.description,\r\nsoitem.qtyordered,\r\nsoitem.qtyfulfilled,\r\nsoitem.unitprice,\r\nsoitem.totalPrice,\r\nso.dateCreated,\r\nso.dateissued,\r\nsoitem.dateScheduledFulfillment\r\nfrom so\r\njoin\r\nsoitem on so.id = soitem.soid\r\njoin\r\nsoitemstatus on soitem.statusId = soitemstatus.id\r\nwhere\r\nsoitemstatus.name = \"entered\"", "2025-09-30 14:02:18.194000", "2025-09-30 14:02:18.194000", "", 46, "Production Schedule"], [15, "select\r\nSO.num,\r\nsoitem.soLineItem,\r\nSO.customerContact,\r\nsoitem.customerPartNum,\r\nsoitem.productNum,\r\nsoitem.description,\r\nsoitem.qtytofulfill,\r\nso.dateCreated,\r\nso.dateIssued,\r\nsoitem.dateScheduledFulfillment,\r\nsostatus.name,\r\nbom.activeflag\r\nfrom so\r\njoin\r\nsoitem on so.id = soitem.soid\r\njoin\r\nBom on soitem.productnum = bom.num\r\nJoin\r\nsostatus on so.statusid = sostatus.id\r\nWhere SO.statusId in (10,20)\r\nand \r\nbom.activeflag = 0\r\norder by so.datecreated desc", "2025-10-15 14:17:30.379000", "2025-10-22 17:22:36.193000", "Returns all open orders whre the BOM is not active", 46, "Document Demand Report"], [16, "SELECT\r\n  p.num AS `Part Number`,\r\n  p.description AS `Part Description`,\r\n  p.abcCode AS `ABC Code`,\r\n\r\n  /* Next FIFO Cost = company-wide next FIFO from costlayer */\r\n  (\r\n    SELECT\r\n      (cl.orgTotalCost / NULLIF(cl.orgQty, 0)) AS fifo_unit_cost\r\n    FROM costlayer cl\r\n    JOIN costlayerstatus cls\r\n      ON cls.id = cl.statusId\r\n    WHERE\r\n      cl.partId = p.id\r\n      AND cls.name = 'Open'\r\n      AND cl.qty > 0\r\n      AND cl.orgQty <> 0\r\n    ORDER BY\r\n      COALESCE(\r\n        /* earliest inventory transaction date tied to the layer (if any) */\r\n        (\r\n          SELECT MIN(il.eventDate)\r\n          FROM inventorylogtocostlayer ilt\r\n          JOIN inventorylog il\r\n            ON il.id = ilt.inventoryLogId\r\n          WHERE ilt.costLayerId = cl.id\r\n        ),\r\n        cl.dateCreated\r\n      ) ASC,\r\n      cl.id ASC\r\n    LIMIT 1\r\n  ) AS `Next FIFO Cost`,\r\n\r\n  /* Last Purchase Price = last received PO unit cost, else last PO-issued line unit cost */\r\n  COALESCE(\r\n    (\r\n      SELECT\r\n        poi.unitCost\r\n      FROM receiptitem ri\r\n      JOIN receipt r\r\n        ON r.id = ri.receiptId\r\n      JOIN poitem poi\r\n        ON poi.id = ri.poItemId\r\n      WHERE\r\n        ri.partId = p.id\r\n        AND r.poId IS NOT NULL\r\n        AND ri.dateReceived IS NOT NULL\r\n        AND poi.unitCost IS NOT NULL\r\n      ORDER BY\r\n        ri.dateReceived DESC,\r\n        ri.id DESC\r\n      LIMIT 1\r\n    ),\r\n    (\r\n      SELECT\r\n        poi.unitCost\r\n      FROM poitem poi\r\n      JOIN po\r\n        ON po.id = poi.poId\r\n      WHERE\r\n        poi.partId = p.id\r\n        AND poi.unitCost IS NOT NULL\r\n      ORDER BY\r\n        COALESCE(po.dateIssued, po.dateCreated) DESC,\r\n        poi.id DESC\r\n      LIMIT 1\r\n    )\r\n  ) AS `Last Purchase Price per Unit`\r\n\r\nFROM part p\r\nORDER BY p.num", "2026-02-18 09:26:28.566000", "2026-02-18 09:47:17.381000", "Query to list Next FIFO Cast and compare to Last purchase price - not working yet", 17, "Not working - Query Next FIFO and Last PP"], [17, "SELECT\r\n  p.num AS PartNum,\r\n  t.id  AS TagId,\r\n  t.num AS TagNum,\r\n  t.qty,\r\n  t.qtyCommitted,\r\n  (t.qty - IFNULL(t.qtyCommitted,0)) AS AvailableQty\r\nFROM part p\r\nJOIN tag t ON t.partId = p.id\r\nWHERE p.num = '16204-17'\r\n  AND t.locationId = (\r\n      SELECT l.id\r\n      FROM location l\r\n      JOIN locationgroup lg ON lg.id = l.locationGroupId\r\n      WHERE CONCAT(lg.name,'-',l.name) = 'Main-ISI'\r\n         OR l.name = 'Main-ISI'\r\n      LIMIT 1\r\n  )\r\nORDER BY t.dateCreated, t.num;", "2026-02-18 09:28:47.340000", "2026-02-18 09:28:47.340000", "returns the location.id plus a \u201cDisplayName\u201d in the same LG-LOC format you see in Fishbowl", 17, "Real Loc ID"], [18, "SELECT\r\n  p.num AS PartNum,\r\n  CONCAT(lg.name,'-',l.name) AS DisplayLocation,\r\n  t.num AS TagNum,\r\n  t.qty,\r\n  t.qtyCommitted,\r\n  (t.qty - IFNULL(t.qtyCommitted,0)) AS AvailableQty,\r\n\r\n  ri.dateReceived AS ReceiptDate,\r\n  poi.unitCost    AS PoUnitCost,\r\n\r\n  il_first.eventDate AS FirstInvEventDate,\r\n  il_first.cost      AS InvLogCost,\r\n\r\n  COALESCE(poi.unitCost, il_first.cost) AS ChosenCost\r\n\r\nFROM part p\r\nJOIN tag t ON t.partId = p.id\r\nJOIN location l ON l.id = t.locationId\r\nJOIN locationgroup lg ON lg.id = l.locationGroupId\r\n\r\nLEFT JOIN receiptitem ri ON ri.tagId = t.id\r\nLEFT JOIN poitem poi     ON poi.id = ri.poItemId\r\n\r\nLEFT JOIN (\r\n    SELECT endTagNum, endLocationId, partId, cost, eventDate\r\n    FROM (\r\n        SELECT\r\n            il.endTagNum, il.endLocationId, il.partId, il.cost, il.eventDate,\r\n            ROW_NUMBER() OVER (\r\n                PARTITION BY il.endTagNum, il.endLocationId\r\n                ORDER BY il.eventDate ASC, il.id ASC\r\n            ) AS rn\r\n        FROM inventorylog il\r\n        WHERE il.changeQty > 0\r\n          AND il.endTagNum IS NOT NULL\r\n    ) z\r\n    WHERE z.rn = 1\r\n) il_first\r\n  ON il_first.endTagNum = t.num\r\n AND il_first.endLocationId = t.locationId\r\n AND il_first.partId = t.partId\r\n\r\nWHERE p.num = '16204-17'\r\n  AND (CONCAT(lg.name,'-',l.name) = 'Main-ISI' OR l.name = 'Main-ISI')\r\n  AND t.qty > 0\r\n\r\nORDER BY COALESCE(ri.dateReceived, il_first.eventDate, t.dateCreated) ASC, t.num ASC;", "2026-02-18 09:31:33.105000", "2026-02-18 09:31:33.105000", "", 17, "Return inventory location by PN"], [19, "SELECT\r\n  p.num AS `Part Number`,\r\n  p.description AS `Part Description`,\r\n  pt.name AS `Inventory Type`,\r\n\r\n  /* Last PO Purchase Price:\r\n     1) last RECEIVED PO unit cost (preferred)\r\n     2) else last PO-issued/created line unit cost (fallback)\r\n     If neither exists => 'NoPOHist'\r\n  */\r\n  IFNULL(\r\n    CAST(\r\n      COALESCE(\r\n        (\r\n          SELECT poi.unitCost\r\n          FROM receiptitem ri\r\n          JOIN receipt r\r\n            ON r.id = ri.receiptId\r\n          JOIN poitem poi\r\n            ON poi.id = ri.poItemId\r\n          WHERE\r\n            ri.partId = p.id\r\n            AND r.poId IS NOT NULL\r\n            AND ri.dateReceived IS NOT NULL\r\n            AND poi.unitCost IS NOT NULL\r\n          ORDER BY ri.dateReceived DESC, ri.id DESC\r\n          LIMIT 1\r\n        ),\r\n        (\r\n          SELECT poi.unitCost\r\n          FROM poitem poi\r\n          JOIN po\r\n            ON po.id = poi.poId\r\n          WHERE\r\n            poi.partId = p.id\r\n            AND poi.unitCost IS NOT NULL\r\n          ORDER BY COALESCE(po.dateIssued, po.dateCreated) DESC, poi.id DESC\r\n          LIMIT 1\r\n        )\r\n      ) AS CHAR\r\n    ),\r\n    'NoPOHist'\r\n  ) AS `Last PO Purchase Price`,\r\n\r\n  /* Last Purchase Price Date:\r\n     1) receiptitem.dateReceived for last received PO\r\n     2) else PO issue/create date for last PO line\r\n     If neither exists => 'NoPOHist'\r\n  */\r\n  IFNULL(\r\n    CAST(\r\n      DATE(\r\n        COALESCE(\r\n          (\r\n            SELECT ri.dateReceived\r\n            FROM receiptitem ri\r\n            JOIN receipt r\r\n              ON r.id = ri.receiptId\r\n            JOIN poitem poi\r\n              ON poi.id = ri.poItemId\r\n            WHERE\r\n              ri.partId = p.id\r\n              AND r.poId IS NOT NULL\r\n              AND ri.dateReceived IS NOT NULL\r\n              AND poi.unitCost IS NOT NULL\r\n            ORDER BY ri.dateReceived DESC, ri.id DESC\r\n            LIMIT 1\r\n          ),\r\n          (\r\n            SELECT COALESCE(po.dateIssued, po.dateCreated)\r\n            FROM poitem poi\r\n            JOIN po\r\n              ON po.id = poi.poId\r\n            WHERE\r\n              poi.partId = p.id\r\n              AND poi.unitCost IS NOT NULL\r\n              AND COALESCE(po.dateIssued, po.dateCreated) IS NOT NULL\r\n            ORDER BY COALESCE(po.dateIssued, po.dateCreated) DESC, poi.id DESC\r\n            LIMIT 1\r\n          )\r\n        )\r\n      ) AS CHAR\r\n    ),\r\n    'NoPOHist'\r\n  ) AS `Last Purchase Price Date`\r\n\r\nFROM part p\r\nLEFT JOIN parttype pt\r\n  ON pt.id = p.typeId\r\n\r\nORDER BY p.num", "2026-02-18 10:12:09.009000", "2026-02-18 10:20:10.099000", "Last PO Purchase Price (most recent received PO unit cost; if none, falls back to most recent PO line unit cost). If no PO history exists at all, it returns NoPOHist", 17, "Last PO Purch Price Query"], [20, "SELECT\r\n  lg.name AS `Location Group`,\r\n  p.num AS `Part Number`,\r\n  p.description AS `Part Description`,\r\n\r\n  /* Reorder levels (will be NULL when No ROP/OUL is true) */\r\n  pr.reorderPoint AS `Reorder Point`,\r\n  pr.orderUpToLevel AS `Order Up To`,\r\n\r\n  /* On Hand per Forecast definition: OnHand subtracts Not Available */\r\n  (COALESCE(qi.qtyOnHand, 0) - COALESCE(qi.qtyNotAvailable, 0)) AS `On Hand`,  -- [1](https://help.fishbowlinventory.com/resource/advancedreports)[4](https://fishbowlhelp.com/files/database/tables/qtyinventory.html)\r\n\r\n  /* On Order = totals across sources (PO + SO + TO + MO) */\r\n  (COALESCE(qi.qtyOnOrderPO, 0)\r\n   + COALESCE(qi.qtyOnOrderSO, 0)\r\n   + COALESCE(qi.qtyOnOrderTO, 0)\r\n   + COALESCE(qi.qtyOnOrderMO, 0)\r\n  ) AS `On Order`,  -- [4](https://fishbowlhelp.com/files/database/tables/qtyinventory.html)\r\n\r\n  /* Allocated = totals across sources (PO + SO + TO + MO) */\r\n  (COALESCE(qi.qtyAllocatedPO, 0)\r\n   + COALESCE(qi.qtyAllocatedSO, 0)\r\n   + COALESCE(qi.qtyAllocatedTO, 0)\r\n   + COALESCE(qi.qtyAllocatedMO, 0)\r\n  ) AS `Allocated`,  -- [4](https://fishbowlhelp.com/files/database/tables/qtyinventory.html)\r\n\r\n  /* Shortage Qty (Include No ROP/OUL):\r\n     Needed = OrderUpTo - OnOrder - OnHand + Allocated\r\n     Shortage = max(Needed, 0)\r\n     For No ROP/OUL parts, OrderUpTo is treated as 0 via COALESCE.\r\n  */\r\n  GREATEST(\r\n    (\r\n      COALESCE(pr.orderUpToLevel, 0)\r\n      - (COALESCE(qi.qtyOnOrderPO, 0)\r\n         + COALESCE(qi.qtyOnOrderSO, 0)\r\n         + COALESCE(qi.qtyOnOrderTO, 0)\r\n         + COALESCE(qi.qtyOnOrderMO, 0)\r\n        )\r\n      - (COALESCE(qi.qtyOnHand, 0) - COALESCE(qi.qtyNotAvailable, 0))\r\n      + (COALESCE(qi.qtyAllocatedPO, 0)\r\n         + COALESCE(qi.qtyAllocatedSO, 0)\r\n         + COALESCE(qi.qtyAllocatedTO, 0)\r\n         + COALESCE(qi.qtyAllocatedMO, 0)\r\n        )\r\n    ),\r\n    0\r\n  ) AS `Shortage Qty`  -- [1](https://help.fishbowlinventory.com/resource/advancedreports)\r\n\r\nFROM qtyinventory qi\r\nJOIN part p\r\n  ON p.id = qi.partId\r\nJOIN locationgroup lg\r\n  ON lg.id = qi.locationGroupId\r\n\r\n/* LEFT JOIN is what \u201cincludes No ROP/OUL\u201d rows */\r\nLEFT JOIN partreorder pr\r\n  ON pr.partId = p.id\r\n AND pr.locationGroupId = lg.id  -- [2](https://fishbowlhelp.com/files/database/tables/partreorder.html)[4](https://fishbowlhelp.com/files/database/tables/qtyinventory.html)\r\n\r\nWHERE\r\n  /* Only include parts that do NOT have a BOM */\r\n  (p.defaultBomId IS NULL OR p.defaultBomId = 0)  -- [5](https://fishbowlhelp.com/files/database/tables/bom.html)\r\n\r\nORDER BY lg.name, p.num\r\n", "2026-02-24 16:00:52.049000", "2026-02-24 16:00:52.049000", "Below is the updated query (NO BOM parts only) with Shortage Qty and No ROP/OUL included.", 17, "Shortage Report"], [21, "Select \r\npart.num,\r\npart.description,\r\nbomitem.stage\r\nFrom \r\nbomitem\r\nInner Join part on bomitem.partid = part.id\r\nwhere\r\nbomitem.stage = false\r\nand part.num not like \"labor%\"\r\nand part.num not like \"ab%\"\r\nand part.num not like \"d%\"\r\nand part.num not like \"0%\"\r\nand part.num not like \"g%\"\r\nand part.num not like \"t%\"\r\nand part.num not like \"serv%\"\r\nand part.num not like \"b%\"\r\nand part.num not like \"f%\"\r\nand part.num not like \"rg%\"\r\nand part.num not like \"nre%\"\r\ngroup by num", "2026-02-25 13:51:43.910000", "2026-02-25 14:22:36.747000", "", 46, "Purchased Part"], [22, "Select \r\npart.num,\r\npart.description,\r\nbomitem.stage\r\nFrom \r\nbomitem\r\nInner Join part on bomitem.partid = part.id\r\nwhere\r\nbomitem.stage = true\r\nand part.description like \"%label%\"\r\ngroup by num", "2026-02-25 15:30:56.525000", "2026-02-25 15:35:18.540000", "", 46, "Labels to be removed from BOM"], [23, "Select \r\npart.num,\r\npart.description,\r\nbom.num,\r\nbom.activeFlag,\r\nbom.description\r\nFrom \r\nbomitem\r\nInner Join part on bomitem.partid = part.id\r\nInner Join bom on bomitem.bomid = bom.id\r\nwhere\r\npart.description like \"%label%\"\r\nand bomitem.stage = true", "2026-02-25 16:03:27.905000", "2026-02-25 16:26:22.608000", "", 46, "MasterLabelList"], [25, "Select \r\npart.num,\r\npart.description,\r\nbom.num,\r\nbom.activeFlag,\r\nbom.description\r\nFrom \r\nbomitem\r\nInner Join part on bomitem.partid = part.id\r\nInner Join bom on bomitem.bomid = bom.id\r\nwhere\r\npart.description like \"%label%\"\r\nand bom.num not like \"0%\"\r\nand bom.num not like \"ab%\"", "2026-02-25 16:32:00.638000", "2026-02-25 16:34:24.039000", "", 46, "Label BOMs"], [26, "SELECT pi.description AS \"Part Description\", pi.partnum AS \"Part Number\", v.name AS \"Vendor\", p.datecreated AS \"Date Entered\",  p.id AS \"PO_ID\", p.buyer AS \"Buyer\"\r\nFROM po p\r\nJOIN poitem pi\r\n    ON pi.poid = p.id\r\nJOIN vendor v\r\n    ON p.vendorid = v.id\r\nWHERE datecreated > '2026-04-01'\r\nORDER BY p.datecreated;", "2026-04-14 08:56:23.852000", "2026-04-14 08:59:07.166000", "Change the date on line 5 to retrieve POs entered after that date.", 51, "Searching for POs after a specific date"], [27, "SELECT \r\n    p_comp.num                                          AS component_part_number,\r\n    p_comp.description                                  AS component_description,\r\n    u.name                                              AS uom,\r\n    b.num                                               AS bom_number,\r\n    m.num                                               AS mo_number,\r\n    w.num                                               AS wo_number,\r\n    m.dateScheduled                                     AS mo_scheduled_date,\r\n    SUM(\r\n        (mi.qtyToFulfill - mi.qtyFulfilled) \r\n        * bi.quantity\r\n    )                                                   AS total_demand,\r\n    qt.QTYONHAND                                        AS qty_on_hand,\r\n    qt.QTYONHAND - SUM(\r\n        (mi.qtyToFulfill - mi.qtyFulfilled) \r\n        * bi.quantity\r\n    )                                                   AS net_available,\r\n    qt.QTYONORDER                                       AS qty_on_order,\r\n    CASE \r\n        WHEN qt.QTYONHAND < SUM(\r\n            (mi.qtyToFulfill - mi.qtyFulfilled) \r\n            * bi.quantity\r\n        ) THEN 'SHORT'\r\n        ELSE ''\r\n    END                                                 AS status\r\nFROM mo m\r\nJOIN moitem mi                      ON mi.moId = m.id\r\nJOIN part p_mo                      ON p_mo.id = mi.partId\r\nJOIN bom b                          ON b.num = p_mo.num\r\nJOIN bomitem bi                     ON bi.bomid = b.id\r\nJOIN part p_comp                    ON p_comp.id = bi.partid\r\nJOIN parttype pt                    ON pt.id = p_comp.typeid\r\nJOIN uom u                          ON u.id = p_comp.uomid\r\nLEFT JOIN qtyinventorytotals qt     ON qt.PARTID = p_comp.id\r\nLEFT JOIN wo w                      ON w.moItemId = mi.id\r\nWHERE m.statusId IN (10, 20, 50)\r\n  AND mi.statusId NOT IN (60, 70, 80)\r\n  AND m.dateScheduled <= '2026-05-31'\r\n  AND mi.partId IS NOT NULL\r\n  AND p_mo.activeFlag = 1\r\n  AND p_comp.activeFlag = 1\r\n  AND pt.id NOT IN (20, 21, 22, 60)\r\nGROUP BY\r\n    p_comp.num,\r\n    p_comp.description,\r\n    u.name,\r\n    b.num,\r\n    m.num,\r\n    w.num,\r\n    m.dateScheduled,\r\n    qt.QTYONHAND,\r\n    qt.QTYONORDER\r\nHAVING SUM(\r\n    (mi.qtyToFulfill - mi.qtyFulfilled) \r\n    * bi.quantity\r\n) > 0\r\nORDER BY net_available ASC;", "2026-04-14 17:09:10.783000", "2026-04-14 17:09:10.783000", "Dataset to determine demand over a given period of time", 51, "Demand"], [28, "SELECT\r\n    l1.finished_good,\r\n    l1.finished_good_description,\r\n    l1.component_part_number,\r\n    l1.component_description,\r\n    l1.component_uom,\r\n    l1.qty_per_unit,\r\n    l1.make_buy,\r\n    l1.qty_on_hand,\r\n    l1.qty_on_order,\r\n    'Level 1' AS bom_level\r\nFROM (\r\n    SELECT\r\n        b.num                                           AS finished_good,\r\n        p_fg.description                                AS finished_good_description,\r\n        p_comp.num                                      AS component_part_number,\r\n        p_comp.description                              AS component_description,\r\n        u_part.name                                     AS component_uom,\r\n        CASE\r\n            WHEN bi.uomId = p_comp.uomId THEN bi.quantity\r\n            ELSE bi.quantity * (\r\n                SELECT uc.multiply / uc.factor\r\n                FROM uomconversion uc\r\n                WHERE uc.fromUomId = bi.uomId\r\n                  AND uc.toUomId = p_comp.uomId\r\n                LIMIT 1\r\n            )\r\n        END                                             AS qty_per_unit,\r\n        JSON_UNQUOTE(JSON_EXTRACT(p_comp.customFields, '$.\\\"42\\\".value')) AS make_buy,\r\n        MAX(qt.QTYONHAND)                               AS qty_on_hand,\r\n        MAX(qt.QTYONORDER)                              AS qty_on_order\r\n    FROM bom b\r\n    JOIN part p_fg          ON p_fg.num = b.num\r\n    JOIN bomitem bi          ON bi.bomid = b.id\r\n    JOIN part p_comp        ON p_comp.id = bi.partid\r\n    JOIN parttype pt         ON pt.id = p_comp.typeid\r\n    JOIN uom u_part         ON u_part.id = p_comp.uomId\r\n    LEFT JOIN qtyinventorytotals qt ON qt.PARTID = p_comp.id\r\n    WHERE b.num IN ('06330','04777','06463','06464','06465','06476','05899',\r\n        '06495','05828','05790','16645','06470','16646','06426','06355',\r\n        '06414','03606','03612','03611','03839','01195','06062','AB1069',\r\n        '06483','06490','06480','05930','04220','06251','04535','06500',\r\n        '06446','05931','00826','AB1331','AB2357','AB1089','AB1170','05929',\r\n        '00513','AB1194','AB2335','06218','06509','AB1151','00290','06167',\r\n        '01181','AB1135','06204','AB1077','06347','00514','AB1125','AB1136',\r\n        '06506','AB1808','AB1583','AB1757','00172','AB1398','AB1327','06473',\r\n        '05825','00836','03991','04235','04233','04232','04890','00846',\r\n        '06040','00011','01038','02417','05935','04562','00499','AB1977',\r\n        'AB1003','06494','AB1045','AB1579','AB1306','AB1412','AB1673',\r\n        'AB1161','AB1232','02416','AB1008','AB1131','AB1153','AB1216',\r\n        'AB1191','AB1409','00632','01106','AB1833','AB1367','AB1617',\r\n        'AB1152','AB1148','06261','06519','06520','01180','AB1234','AB1142',\r\n        '06429','AB1438','03987','AB1009','AB1875','AB1192','AB1710',\r\n        '06139','00505','AB1714','AB1629','AB1094','04529','00009','AB1129',\r\n        '06514','06515','06516','06517','00137','AB1415','AB1193','AB1972',\r\n        'AB1119','AB1123','AB1573','05934','04460','00963','AB1292','AB1445',\r\n        '00291','06166','06169','06168','06014','06522','06521','AB1205',\r\n        'AB1414','AB2375','02830','06435','AB1149','AB1266','AB1122','00509',\r\n        '00157','AB1527','AB2230','00496','04528','00502','AB1206','AB1697',\r\n        'AB1018','06508','00503','02414','00292','AB1240','AB1485','AB1482',\r\n        '03605','AB2098','AB1218','AB1021','00617','AB1672','AB1172',\r\n        'AB1144','AB1007')\r\n      AND p_comp.activeFlag = 1\r\n      AND pt.id NOT IN (20, 21, 22, 60)\r\n      AND p_comp.num != b.num\r\n      AND NOT EXISTS (\r\n          SELECT 1 FROM bom b_sub WHERE b_sub.num = p_comp.num\r\n      )\r\n    GROUP BY\r\n        b.num, p_fg.description, p_comp.num, p_comp.description,\r\n        p_comp.uomId, u_part.name, bi.uomId, bi.quantity, p_comp.customFields\r\n) l1\r\n\r\nUNION ALL\r\n\r\nSELECT\r\n    l2.finished_good,\r\n    l2.finished_good_description,\r\n    l2.component_part_number,\r\n    l2.component_description,\r\n    l2.component_uom,\r\n    l2.qty_per_unit,\r\n    l2.make_buy,\r\n    l2.qty_on_hand,\r\n    l2.qty_on_order,\r\n    'Level 2' AS bom_level\r\nFROM (\r\n    SELECT\r\n        b1.num                                          AS finished_good,\r\n        p_fg.description                                AS finished_good_description,\r\n        p_comp2.num                                     AS component_part_number,\r\n        p_comp2.description                             AS component_description,\r\n        u_part2.name                                    AS component_uom,\r\n        CASE\r\n            WHEN bi1.uomId = p_comp1.uomId THEN bi1.quantity\r\n            ELSE bi1.quantity * (\r\n                SELECT uc.multiply / uc.factor\r\n                FROM uomconversion uc\r\n                WHERE uc.fromUomId = bi1.uomId\r\n                  AND uc.toUomId = p_comp1.uomId\r\n                LIMIT 1\r\n            )\r\n        END *\r\n        CASE\r\n            WHEN bi2.uomId = p_comp2.uomId THEN bi2.quantity\r\n            ELSE bi2.quantity * (\r\n                SELECT uc.multiply / uc.factor\r\n                FROM uomconversion uc\r\n                WHERE uc.fromUomId = bi2.uomId\r\n                  AND uc.toUomId = p_comp2.uomId\r\n                LIMIT 1\r\n            )\r\n        END                                             AS qty_per_unit,\r\n        JSON_UNQUOTE(JSON_EXTRACT(p_comp2.customFields, '$.\\\"42\\\".value')) AS make_buy,\r\n        MAX(qt2.QTYONHAND)                              AS qty_on_hand,\r\n        MAX(qt2.QTYONORDER)                             AS qty_on_order\r\n    FROM bom b1\r\n    JOIN part p_fg              ON p_fg.num = b1.num\r\n    JOIN bomitem bi1             ON bi1.bomid = b1.id\r\n    JOIN part p_comp1           ON p_comp1.id = bi1.partid\r\n    JOIN parttype pt1            ON pt1.id = p_comp1.typeid\r\n    JOIN bom b2                 ON b2.num = p_comp1.num\r\n    JOIN bomitem bi2             ON bi2.bomid = b2.id\r\n    JOIN part p_comp2           ON p_comp2.id = bi2.partid\r\n    JOIN parttype pt2            ON pt2.id = p_comp2.typeid\r\n    JOIN uom u_part2            ON u_part2.id = p_comp2.uomId\r\n    LEFT JOIN qtyinventorytotals qt2 ON qt2.PARTID = p_comp2.id\r\n    WHERE b1.num IN ('06330','04777','06463','06464','06465','06476','05899',\r\n        '06495','05828','05790','16645','06470','16646','06426','06355',\r\n        '06414','03606','03612','03611','03839','01195','06062','AB1069',\r\n        '06483','06490','06480','05930','04220','06251','04535','06500',\r\n        '06446','05931','00826','AB1331','AB2357','AB1089','AB1170','05929',\r\n        '00513','AB1194','AB2335','06218','06509','AB1151','00290','06167',\r\n        '01181','AB1135','06204','AB1077','06347','00514','AB1125','AB1136',\r\n        '06506','AB1808','AB1583','AB1757','00172','AB1398','AB1327','06473',\r\n        '05825','00836','03991','04235','04233','04232','04890','00846',\r\n        '06040','00011','01038','02417','05935','04562','00499','AB1977',\r\n        'AB1003','06494','AB1045','AB1579','AB1306','AB1412','AB1673',\r\n        'AB1161','AB1232','02416','AB1008','AB1131','AB1153','AB1216',\r\n        'AB1191','AB1409','00632','01106','AB1833','AB1367','AB1617',\r\n        'AB1152','AB1148','06261','06519','06520','01180','AB1234','AB1142',\r\n        '06429','AB1438','03987','AB1009','AB1875','AB1192','AB1710',\r\n        '06139','00505','AB1714','AB1629','AB1094','04529','00009','AB1129',\r\n        '06514','06515','06516','06517','00137','AB1415','AB1193','AB1972',\r\n        'AB1119','AB1123','AB1573','05934','04460','00963','AB1292','AB1445',\r\n        '00291','06166','06169','06168','06014','06522','06521','AB1205',\r\n        'AB1414','AB2375','02830','06435','AB1149','AB1266','AB1122','00509',\r\n        '00157','AB1527','AB2230','00496','04528','00502','AB1206','AB1697',\r\n        'AB1018','06508','00503','02414','00292','AB1240','AB1485','AB1482',\r\n        '03605','AB2098','AB1218','AB1021','00617','AB1672','AB1172',\r\n        'AB1144','AB1007')\r\n      AND p_comp1.activeFlag = 1\r\n      AND p_comp2.activeFlag = 1\r\n      AND pt1.id NOT IN (20, 21, 22, 60)\r\n      AND pt2.id NOT IN (20, 21, 22, 60)\r\n      AND p_comp1.num != b1.num\r\n      AND p_comp2.num != b2.num\r\n      AND p_comp2.num != b1.num\r\n    GROUP BY\r\n        b1.num, p_fg.description, p_comp2.num, p_comp2.description,\r\n        p_comp2.uomId, u_part2.name, bi1.uomId, bi1.quantity,\r\n        bi2.uomId, bi2.quantity, p_comp2.customFields\r\n) l2\r\n\r\nORDER BY finished_good, bom_level, component_part_number;", "2026-04-20 14:32:06.897000", "2026-04-20 14:32:06.897000", "Change assembly numbers whereever b.num in is used to get data", 51, "Part_Data_Based_On_Assemblies"], [29, "\r\nSELECT\r\n    table_name,\r\n    column_name\r\nFROM information_schema.columns\r\nWHERE table_schema = DATABASE()\r\nORDER BY\r\n    table_name,\r\n    ordinal_position\r\n\r\n", "2026-04-30 06:48:53.140000", "2026-04-30 06:48:53.140000", "table data", 75, "tables"], [30, "SELECT \r\n    p.num AS part_num,\r\n    p.description,\r\n    u.name AS uom,\r\n    SUM(wi.qtyUsed) AS total_qty_used,\r\n    COUNT(DISTINCT wo.id) AS wo_count\r\nFROM woitem wi\r\nJOIN part p ON p.id = wi.partId\r\nJOIN wo ON wo.id = wi.woId\r\nJOIN uom u ON u.id = p.uomId\r\nWHERE (\r\n    p.num LIKE 'CLAD%'\r\n    OR p.num LIKE 'LF5%'\r\n    OR p.num LIKE 'F2%'\r\n)\r\nAND wo.dateFinished >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)\r\nAND wo.dateFinished IS NOT NULL\r\nGROUP BY p.id, p.num, p.description, u.name\r\nORDER BY total_qty_used DESC", "2026-05-05 11:25:54.966000", "2026-05-05 11:25:54.966000", "Chnage interval on line 16", 51, "GLASS Usage"], [31, "SELECT \r\n    wo.num AS wo_number,\r\n    wo.dateFinished,\r\n    p.num AS glass_part_num,\r\n    p.description AS glass_description,\r\n    u.name AS uom,\r\n    wi.qtyUsed\r\nFROM woitem wi\r\nJOIN part p ON p.id = wi.partId\r\nJOIN wo ON wo.id = wi.woId\r\nJOIN uom u ON u.id = p.uomId\r\nWHERE (\r\n    p.num LIKE 'CLAD%'\r\n    OR p.num LIKE 'LF5%'\r\n    OR p.num LIKE 'F2%'\r\n)\r\nAND wo.dateFinished >= '2025-01-01'\r\nAND wo.dateFinished <= '2026-03-31'\r\nAND wo.dateFinished IS NOT NULL\r\nORDER BY p.num, wo.dateFinished", "2026-05-05 12:35:48.918000", "2026-05-05 12:35:48.918000", "Glass usage between two dates", 51, "Glass_Usage_Date"], [32, "SELECT \r\n    p.num AS label_pn,\r\n    p.description AS label_description,\r\n    COUNT(DISTINCT w.id) AS total_work_orders,\r\n    SUM(w.qtyOrdered) AS total_cables_built,\r\n    MIN(w.dateFinished) AS earliest_wo,\r\n    MAX(w.dateFinished) AS latest_wo,\r\n    ROUND(\r\n        SUM(w.qtyOrdered) / NULLIF(TIMESTAMPDIFF(MONTH, MIN(w.dateFinished), MAX(w.dateFinished)), 0)\r\n    , 1) AS avg_monthly_usage,\r\n    v.name AS vendor_name,\r\n    vp.leadTime AS lead_time_days\r\nFROM woitem wi\r\nJOIN part p ON wi.partId = p.id\r\nJOIN wo w ON wi.woId = w.id\r\nLEFT JOIN vendorparts vp ON vp.partId = p.id\r\n    AND vp.leadTime = (\r\n        SELECT MAX(vp2.leadTime)\r\n        FROM vendorparts vp2\r\n        WHERE vp2.partId = p.id\r\n    )\r\nLEFT JOIN vendor v ON vp.vendorId = v.id\r\nWHERE p.num IN ('7176','7055','7061','7679','7220','7054','7060','7345','7680')\r\nAND w.dateFinished IS NOT NULL\r\nAND w.statusId = 40\r\nGROUP BY p.num, p.description, v.name, vp.leadTime\r\nORDER BY avg_monthly_usage DESC", "2026-05-05 17:01:21.707000", "2026-05-05 17:01:21.707000", "", 51, "Labels Run rate"], [33, "SELECT \r\n    wo.num AS wo_number,\r\n    wo.dateFinished,\r\n    p.num AS glass_part_num,\r\n    p.description AS glass_description,\r\n    u.name AS uom,\r\n    wi.qtyUsed,\r\n    fp.num AS finished_part_num,\r\n    fp.description AS finished_part_description,\r\n    mi.qtyFulfilled AS qty_produced,\r\n    fu.name AS finished_uom\r\nFROM woitem wi\r\nJOIN part p ON p.id = wi.partId\r\nJOIN wo ON wo.id = wi.woId\r\nJOIN uom u ON u.id = p.uomId\r\nJOIN womoview wmv ON wmv.WOID = wo.id\r\nJOIN moitem mi ON mi.moId = wmv.MOID AND mi.typeId = 10\r\nJOIN part fp ON fp.id = mi.partId\r\nJOIN uom fu ON fu.id = mi.uomId\r\nWHERE (\r\n    p.num LIKE 'CLAD%'\r\n    OR p.num LIKE 'LF5%'\r\n    OR p.num LIKE 'F2%'\r\n)\r\nAND wo.dateFinished >= '2026-01-01'\r\nAND wo.dateFinished <= '2026-04-30'\r\nAND wo.dateFinished IS NOT NULL\r\nORDER BY p.num, wo.dateFinished", "2026-05-06 11:37:23.752000", "2026-05-06 11:37:23.752000", "Change dates to get length of finished goods as well", 51, "Glass_Usage_With_FG_Length"]], "truncated": false, "filtered_table_rows_count": 26, "expanded_columns": [], "expandable_columns": [], "columns": ["id", "dataQuery", "dateCreated", "dateLastModified", "description", "lastChangedUserId", "name"], "primary_keys": ["id"], "units": {}, "query": {"sql": "select id, dataQuery, dateCreated, dateLastModified, description, lastChangedUserId, name from dataexport order by id limit 51", "params": {}}, "facet_results": {}, "suggested_facets": [{"name": "description", "toggle_url": "https://jfrex08-innofiber-archive.hf.space/fishbowl_archive/dataexport.json?_facet=description"}, {"name": "lastChangedUserId", "toggle_url": "https://jfrex08-innofiber-archive.hf.space/fishbowl_archive/dataexport.json?_facet=lastChangedUserId"}, {"name": "dateCreated", "type": "date", "toggle_url": "https://jfrex08-innofiber-archive.hf.space/fishbowl_archive/dataexport.json?_facet_date=dateCreated"}, {"name": "dateLastModified", "type": "date", "toggle_url": "https://jfrex08-innofiber-archive.hf.space/fishbowl_archive/dataexport.json?_facet_date=dateLastModified"}], "next": null, "next_url": null, "private": false, "allow_execute_sql": true, "query_ms": 9.934515983331949}