businessID = 27; // Run the EXACT query from getForBuilder.cfm qCategories = queryTimed(" SELECT DISTINCT p.ItemID as CategoryID, p.Name as Name, p.SortOrder FROM Items p INNER JOIN Items c ON c.ParentItemID = p.ItemID WHERE p.BusinessID = :businessID AND p.ParentItemID = 0 AND p.IsActive = 1 AND NOT EXISTS ( SELECT 1 FROM lt_ItemID_TemplateItemID tl WHERE tl.TemplateItemID = p.ItemID ) ORDER BY p.SortOrder, p.Name ", { businessID: businessID }); cats = []; for (c in qCategories) { arrayAppend(cats, { "CategoryID": c.ID, "Name": c.Name }); } // Also check raw counts rawCount = queryTimed(" SELECT COUNT(*) as cnt FROM Items WHERE BusinessID = :bizId AND ParentItemID = 0 AND IsActive = 1 ", { bizId: businessID }); childrenCount = queryTimed(" SELECT COUNT(DISTINCT c.ParentItemID) as cnt FROM Items c INNER JOIN Items p ON p.ItemID = c.ParentItemID WHERE p.BusinessID = :bizId AND p.ParentItemID = 0 ", { bizId: businessID }); writeOutput(serializeJSON({ "OK": true, "CategoriesFromQuery": cats, "CategoryCount": arrayLen(cats), "TotalTopLevelItems": rawCount.cnt, "TopLevelItemsWithChildren": childrenCount.cnt }));