{
 "started": "2026-10-08T02:04:14+02:00",
 "source": {
  "file": "nwind.mdb (Microsoft Northwind sample, Access 97 / Jet 3)",
  "origin": "github.com/mdbtools/mdbtestdata",
  "sha256": "4682dfc91be526e6508948cc53adf5c63d70fdf7f2cc1f1403ee76b66ac914b2",
  "bytes": 3002368,
  "working_copy_identical": true
 },
 "target": {
  "sqlite": "db/northwind.sqlite",
  "sha256": "525cdfd6a4eb016f8ea41eeae42e6e38a10e42415fd64753d016bac53c7fd3a4",
  "bytes": 1142784
 },
 "engines": {
  "sqlite_python": "3.45.1",
  "ucanaccess": "UCanAccess 5.1.3 (Ucanaccess 3.x.x), HSQLDB in memory",
  "ucanaccess_seconds": 25.6,
  "sqljs": "sql.js / SQLite 3.49.1 (sql.js 1.14.2, WebAssembly, Node v22.22.0)",
  "postgresql": "PostgreSQL 16.15 (Ubuntu 16.15-0ubuntu0.24.04.1)",
  "postgresql_load_seconds": 0.6
 },
 "ole_archive": {
  "objects": 17,
  "byte_identical": 17
 },
 "tables": [
  {
   "name": "categories",
   "source": "Categories",
   "rows_source": 8,
   "rows_jackcess": 8,
   "rows_sqlite": 8,
   "rows_postgresql": 8,
   "rows_sqljs": 8,
   "checksum_source": "55c260ba035870519691cf8dbfcaf60cab651e6f7c841f29d4cac39e9bf5aae1",
   "checksum_sqlite": "55c260ba035870519691cf8dbfcaf60cab651e6f7c841f29d4cac39e9bf5aae1",
   "checksum_postgresql": "55c260ba035870519691cf8dbfcaf60cab651e6f7c841f29d4cac39e9bf5aae1",
   "checksum_sqljs": "55c260ba035870519691cf8dbfcaf60cab651e6f7c841f29d4cac39e9bf5aae1",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 0,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 4,
   "pass": true
  },
  {
   "name": "customers",
   "source": "Customers",
   "rows_source": 91,
   "rows_jackcess": 91,
   "rows_sqlite": 91,
   "rows_postgresql": 91,
   "rows_sqljs": 91,
   "checksum_source": "3ca49870a5aeb2a62fd8899eb65c0a7ee6a2eaf0bb824d77444f38bbc40f2aea",
   "checksum_sqlite": "3ca49870a5aeb2a62fd8899eb65c0a7ee6a2eaf0bb824d77444f38bbc40f2aea",
   "checksum_postgresql": "3ca49870a5aeb2a62fd8899eb65c0a7ee6a2eaf0bb824d77444f38bbc40f2aea",
   "checksum_sqljs": "3ca49870a5aeb2a62fd8899eb65c0a7ee6a2eaf0bb824d77444f38bbc40f2aea",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 10,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 11,
   "pass": true
  },
  {
   "name": "employees",
   "source": "Employees",
   "rows_source": 9,
   "rows_jackcess": 9,
   "rows_sqlite": 9,
   "rows_postgresql": 9,
   "rows_sqljs": 9,
   "checksum_source": "41560b505f910eff67633f31f5cfeca6ce905bcf391b7624e4e9cef7ed9ac40d",
   "checksum_sqlite": "41560b505f910eff67633f31f5cfeca6ce905bcf391b7624e4e9cef7ed9ac40d",
   "checksum_postgresql": "41560b505f910eff67633f31f5cfeca6ce905bcf391b7624e4e9cef7ed9ac40d",
   "checksum_sqljs": "41560b505f910eff67633f31f5cfeca6ce905bcf391b7624e4e9cef7ed9ac40d",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 3,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 17,
   "pass": true
  },
  {
   "name": "shippers",
   "source": "Shippers",
   "rows_source": 3,
   "rows_jackcess": 3,
   "rows_sqlite": 3,
   "rows_postgresql": 3,
   "rows_sqljs": 3,
   "checksum_source": "657121d69884ce2c61c73b69cd7efed353d79711e42dd9c61fc3492bffbc91e1",
   "checksum_sqlite": "657121d69884ce2c61c73b69cd7efed353d79711e42dd9c61fc3492bffbc91e1",
   "checksum_postgresql": "657121d69884ce2c61c73b69cd7efed353d79711e42dd9c61fc3492bffbc91e1",
   "checksum_sqljs": "657121d69884ce2c61c73b69cd7efed353d79711e42dd9c61fc3492bffbc91e1",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 0,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 3,
   "pass": true
  },
  {
   "name": "suppliers",
   "source": "Suppliers",
   "rows_source": 29,
   "rows_jackcess": 29,
   "rows_sqlite": 29,
   "rows_postgresql": 29,
   "rows_sqljs": 29,
   "checksum_source": "5a54d4e6b31ca2ddb1201a0a1acd433c51e8b67767a71373880d16b5947f5d95",
   "checksum_sqlite": "5a54d4e6b31ca2ddb1201a0a1acd433c51e8b67767a71373880d16b5947f5d95",
   "checksum_postgresql": "5a54d4e6b31ca2ddb1201a0a1acd433c51e8b67767a71373880d16b5947f5d95",
   "checksum_sqljs": "5a54d4e6b31ca2ddb1201a0a1acd433c51e8b67767a71373880d16b5947f5d95",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 11,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 12,
   "pass": true
  },
  {
   "name": "products",
   "source": "Products",
   "rows_source": 77,
   "rows_jackcess": 77,
   "rows_sqlite": 77,
   "rows_postgresql": 77,
   "rows_sqljs": 77,
   "checksum_source": "fdbcf701fd18888ef6bc39b9f6a040a44811f5cade58d2a7f52256bb1513acea",
   "checksum_sqlite": "fdbcf701fd18888ef6bc39b9f6a040a44811f5cade58d2a7f52256bb1513acea",
   "checksum_postgresql": "fdbcf701fd18888ef6bc39b9f6a040a44811f5cade58d2a7f52256bb1513acea",
   "checksum_sqljs": "fdbcf701fd18888ef6bc39b9f6a040a44811f5cade58d2a7f52256bb1513acea",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 0,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 10,
   "pass": true
  },
  {
   "name": "orders",
   "source": "Orders",
   "rows_source": 830,
   "rows_jackcess": 830,
   "rows_sqlite": 830,
   "rows_postgresql": 830,
   "rows_sqljs": 830,
   "checksum_source": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "checksum_sqlite": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "checksum_postgresql": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "checksum_sqljs": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 62,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 14,
   "pass": true
  },
  {
   "name": "order_details",
   "source": "Order Details",
   "rows_source": 2155,
   "rows_jackcess": 2155,
   "rows_sqlite": 2155,
   "rows_postgresql": 2155,
   "rows_sqljs": 2155,
   "checksum_source": "ca6fb9b12ec41e26649e4d9ab7346c362c1d7d86ee19a257e45c120f18a843e5",
   "checksum_sqlite": "ca6fb9b12ec41e26649e4d9ab7346c362c1d7d86ee19a257e45c120f18a843e5",
   "checksum_postgresql": "ca6fb9b12ec41e26649e4d9ab7346c362c1d7d86ee19a257e45c120f18a843e5",
   "checksum_sqljs": "ca6fb9b12ec41e26649e4d9ab7346c362c1d7d86ee19a257e45c120f18a843e5",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 0,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {
    "discount": 838
   },
   "columns": 5,
   "pass": true
  },
  {
   "name": "legacy_umsaetze",
   "source": "Umsätze",
   "rows_source": 830,
   "rows_jackcess": 830,
   "rows_sqlite": 830,
   "rows_postgresql": 830,
   "rows_sqljs": 830,
   "checksum_source": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "checksum_sqlite": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "checksum_postgresql": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "checksum_sqljs": "48c0b261ad437a86ce1e325857a0f9c83fbe3f3fb6662bfc366da77938010463",
   "readers_agree": true,
   "row_mismatches": 0,
   "missing": 0,
   "extra": 0,
   "mismatch_examples": [],
   "cleaned_values": 62,
   "cleaned_unexplained": [],
   "ucanaccess_mirror_diffs": {},
   "columns": 14,
   "pass": true
  }
 ],
 "queries": [
  {
   "access": "Alphabetical List of Products",
   "view": "alphabetical_list_of_products",
   "columns": [
    "product_id",
    "product_name",
    "supplier_id",
    "category_id",
    "quantity_per_unit",
    "unit_price",
    "units_in_stock",
    "units_on_order",
    "reorder_level",
    "discontinued",
    "category_name"
   ],
   "access_sql": "SELECT DISTINCTROW Products.*, Categories.CategoryName\nFROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\nWHERE (((Products.Discontinued)=No));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Products.*, Categories.CategoryName\nFROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\nWHERE (((Products.Discontinued)=No));",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 69,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Catalog",
   "view": "catalog",
   "columns": [
    "category_name",
    "description",
    "picture",
    "product_id",
    "product_name",
    "quantity_per_unit",
    "unit_price"
   ],
   "access_sql": "SELECT DISTINCTROW Categories.CategoryName, Categories.Description, Categories.Picture, Products.ProductID, Products.ProductName, Products.QuantityPerUnit, Products.UnitPrice\nFROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\nWHERE (((Products.Discontinued)=No));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Categories.CategoryName, Categories.Description, Categories.Picture, Products.ProductID, Products.ProductName, Products.QuantityPerUnit, Products.UnitPrice\nFROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\nWHERE (((Products.Discontinued)=No));",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 69,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Category Sales for 1995",
   "view": "category_sales_for_1995",
   "columns": [
    "category_name",
    "category_sales"
   ],
   "access_sql": "SELECT DISTINCTROW [Product Sales for 1995].CategoryName, Sum([Product Sales for 1995].ProductSales) AS CategorySales\nFROM [Product Sales for 1995]\nGROUP BY [Product Sales for 1995].CategoryName;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW [Product Sales for 1995].CategoryName, Sum([Product Sales for 1995].ProductSales) AS CategorySales\nFROM (SELECT DISTINCTROW Categories.CategoryName, Products.ProductName, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS ProductSales\nFROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID) INNER JOIN (Orders INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID\nWHERE (((Orders.ShippedDate) Between #1/1/1995# And #12/31/1995#))\nGROUP BY Categories.CategoryName, Products.ProductName) AS [Product Sales for 1995]\nGROUP BY [Product Sales for 1995].CategoryName;",
   "where": null,
   "adaptations": [
    "A1",
    "A3"
   ],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 8,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 6,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Current Product List",
   "view": "current_product_list",
   "columns": [
    "product_id",
    "product_name"
   ],
   "access_sql": "SELECT [Product List].ProductID, [Product List].ProductName\nFROM Products AS [Product List]\nWHERE ((([Product List].Discontinued)=No))\nORDER BY [Product List].ProductName;",
   "ucanaccess_sql_example": "SELECT [Product List].ProductID, [Product List].ProductName\nFROM Products AS [Product List]\nWHERE ((([Product List].Discontinued)=No))\nORDER BY [Product List].ProductName;",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 69,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": {
    "keys": [
     "product_name"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Customers and Suppliers by City",
   "view": "customers_and_suppliers_by_city",
   "columns": [
    "city",
    "company_name",
    "contact_name",
    "relationship"
   ],
   "access_sql": "SELECT City, CompanyName, ContactName, \"Customers\" AS [Relationship] \nFROM Customers\nUNION SELECT City, CompanyName, ContactName, \"Suppliers\"\nFROM Suppliers\nORDER BY City, CompanyName;",
   "ucanaccess_sql_example": "SELECT City, CompanyName, ContactName, \"Customers\" AS [Relationship] \nFROM Customers\nUNION SELECT City, CompanyName, ContactName, \"Suppliers\"\nFROM Suppliers\nORDER BY City, CompanyName;",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 120,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": {
    "keys": [
     "city",
     "company_name"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Employee Sales by Country",
   "view": "employee_sales_by_country",
   "columns": [
    "country",
    "last_name",
    "first_name",
    "shipped_date",
    "order_id",
    "sale_amount"
   ],
   "access_sql": "PARAMETERS Beginning Date DateTime, Ending Date DateTime;\nSELECT DISTINCTROW Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal AS SaleAmount\nFROM Employees INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID) ON Employees.EmployeeID = Orders.EmployeeID\nWHERE (((Orders.ShippedDate) Between [Beginning Date] And [Ending Date]));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal AS SaleAmount\nFROM Employees INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID) ON Employees.EmployeeID = Orders.EmployeeID\nWHERE (((Orders.ShippedDate) Between #1/1/1995# And #12/31/1995#));",
   "where": "shipped_date BETWEEN ? AND ?",
   "adaptations": [
    "A2"
   ],
   "discount_dependent": true,
   "runs": 3,
   "rows_total": 1299,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 28,
   "failures": [],
   "order": null,
   "param_labels": [
    "1995-01-01 .. 1995-12-31",
    "1994-01-01 .. 1996-12-31",
    "1995-07-01 .. 1995-09-30"
   ],
   "pass": true
  },
  {
   "access": "Invoices",
   "view": "invoices",
   "columns": [
    "ship_name",
    "ship_address",
    "ship_city",
    "ship_region",
    "ship_postal_code",
    "ship_country",
    "customer_id",
    "customers_company_name",
    "address",
    "city",
    "region",
    "postal_code",
    "country",
    "salesperson",
    "order_id",
    "order_date",
    "required_date",
    "shipped_date",
    "shippers_company_name",
    "product_id",
    "product_name",
    "unit_price",
    "quantity",
    "discount",
    "extended_price",
    "freight"
   ],
   "access_sql": "SELECT DISTINCTROW Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country, [FirstName] & \" \" & [LastName] AS Salesperson, Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName, [Order Details].ProductID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount, CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice, Orders.Freight\nFROM Shippers INNER JOIN (Products INNER JOIN ((Employees INNER JOIN (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) ON Employees.EmployeeID = Orders.EmployeeID) INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID) ON Shippers.ShipperID = Orders.ShipVia;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country, [FirstName] & \" \" & [LastName] AS Salesperson, Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName, [Order Details].ProductID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount, CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice, Orders.Freight\nFROM Shippers INNER JOIN (Products INNER JOIN ((Employees INNER JOIN (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) ON Employees.EmployeeID = Orders.EmployeeID) INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID) ON Shippers.ShipperID = Orders.ShipVia;",
   "where": null,
   "adaptations": [],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 2155,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 18,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Invoices Filter",
   "view": "invoices",
   "columns": [
    "ship_name",
    "ship_address",
    "ship_city",
    "ship_region",
    "ship_postal_code",
    "ship_country",
    "customer_id",
    "customers_company_name",
    "address",
    "city",
    "region",
    "postal_code",
    "country",
    "salesperson",
    "order_id",
    "order_date",
    "required_date",
    "shipped_date",
    "shippers_company_name",
    "product_id",
    "product_name",
    "unit_price",
    "quantity",
    "discount",
    "extended_price",
    "freight"
   ],
   "access_sql": "SELECT DISTINCTROW Invoices.*\nFROM Invoices\nWHERE (((Invoices.OrderID)=[Forms]![Orders]![OrderID]));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Invoices.*\nFROM (SELECT DISTINCTROW Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country, [FirstName] & \" \" & [LastName] AS Salesperson, Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName, [Order Details].ProductID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount, CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice, Orders.Freight\nFROM Shippers INNER JOIN (Products INNER JOIN ((Employees INNER JOIN (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) ON Employees.EmployeeID = Orders.EmployeeID) INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID) ON Shippers.ShipperID = Orders.ShipVia) AS Invoices\nWHERE (((Invoices.OrderID)=10330));",
   "where": "order_id = ?",
   "adaptations": [
    "A2",
    "A3"
   ],
   "discount_dependent": true,
   "runs": 830,
   "rows_total": 2155,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 18,
   "failures": [],
   "order": null,
   "param_labels": [
    "830 values (OrderID=10330 ... OrderID=11077)"
   ],
   "pass": true
  },
  {
   "access": "Order Details Extended",
   "view": "order_details_extended",
   "columns": [
    "order_id",
    "product_id",
    "product_name",
    "unit_price",
    "quantity",
    "discount",
    "extended_price"
   ],
   "access_sql": "SELECT DISTINCTROW [Order Details].OrderID, [Order Details].ProductID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount, CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice\nFROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID\nORDER BY [Order Details].OrderID;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW [Order Details].OrderID, [Order Details].ProductID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount, CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice\nFROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID\nORDER BY [Order Details].OrderID;",
   "where": null,
   "adaptations": [],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 2155,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 18,
   "failures": [],
   "order": {
    "keys": [
     "order_id"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Order Subtotals",
   "view": "order_subtotals",
   "columns": [
    "order_id",
    "subtotal"
   ],
   "access_sql": "SELECT DISTINCTROW [Order Details].OrderID, Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS Subtotal\nFROM [Order Details]\nGROUP BY [Order Details].OrderID;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW [Order Details].OrderID, Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS Subtotal\nFROM [Order Details]\nGROUP BY [Order Details].OrderID;",
   "where": null,
   "adaptations": [],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 830,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 17,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Orders Qry",
   "view": "orders_qry",
   "columns": [
    "order_id",
    "customer_id",
    "employee_id",
    "order_date",
    "required_date",
    "shipped_date",
    "ship_via",
    "freight",
    "ship_name",
    "ship_address",
    "ship_city",
    "ship_region",
    "ship_postal_code",
    "ship_country",
    "company_name",
    "address",
    "city",
    "region",
    "postal_code",
    "country"
   ],
   "access_sql": "SELECT DISTINCTROW Orders.OrderID, Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country\nFROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Orders.OrderID, Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country\nFROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 830,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Product Sales for 1995",
   "view": "product_sales_for_1995",
   "columns": [
    "category_name",
    "product_name",
    "product_sales"
   ],
   "access_sql": "SELECT DISTINCTROW Categories.CategoryName, Products.ProductName, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS ProductSales\nFROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID) INNER JOIN (Orders INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID\nWHERE (((Orders.ShippedDate) Between #1/1/95# And #12/31/95#))\nGROUP BY Categories.CategoryName, Products.ProductName;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Categories.CategoryName, Products.ProductName, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS ProductSales\nFROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID) INNER JOIN (Orders INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID\nWHERE (((Orders.ShippedDate) Between #1/1/1995# And #12/31/1995#))\nGROUP BY Categories.CategoryName, Products.ProductName;",
   "where": null,
   "adaptations": [
    "A1"
   ],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 77,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 10,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Products Above Average Price",
   "view": "products_above_average_price",
   "columns": [
    "product_name",
    "unit_price"
   ],
   "access_sql": "SELECT DISTINCTROW Products.ProductName, Products.UnitPrice\nFROM Products\nWHERE (((Products.UnitPrice)>(SELECT AVG([UnitPrice]) From Products)))\nORDER BY Products.UnitPrice DESC;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Products.ProductName, Products.UnitPrice\nFROM Products\nWHERE (((Products.UnitPrice)>(SELECT AVG([UnitPrice]) From Products)))\nORDER BY Products.UnitPrice DESC;",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 25,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": {
    "keys": [
     "unit_price"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Products by Category",
   "view": "products_by_category",
   "columns": [
    "category_name",
    "product_name",
    "quantity_per_unit",
    "units_in_stock",
    "discontinued"
   ],
   "access_sql": "SELECT DISTINCTROW Categories.CategoryName, Products.ProductName, Products.QuantityPerUnit, Products.UnitsInStock, Products.Discontinued\nFROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\nWHERE (((Products.Discontinued)<>Yes))\nORDER BY Categories.CategoryName, Products.ProductName;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Categories.CategoryName, Products.ProductName, Products.QuantityPerUnit, Products.UnitsInStock, Products.Discontinued\nFROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\nWHERE (((Products.Discontinued)<>Yes))\nORDER BY Categories.CategoryName, Products.ProductName;",
   "where": null,
   "adaptations": [],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 69,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": {
    "keys": [
     "category_name",
     "product_name"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Quarterly Orders",
   "view": "quarterly_orders",
   "columns": [
    "customer_id",
    "company_name",
    "city",
    "country"
   ],
   "access_sql": "SELECT DISTINCTROW Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country\nFROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID\nWHERE (((Orders.OrderDate) Between #1/1/95# And #12/31/95#));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country\nFROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID\nWHERE (((Orders.OrderDate) Between #1/1/1995# And #12/31/1995#));",
   "where": null,
   "adaptations": [
    "A1"
   ],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 84,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Quarterly Orders by Product",
   "view": "quarterly_orders_by_product",
   "columns": [
    "product_name",
    "customer_id",
    "order_year",
    "qtr_1",
    "qtr_2",
    "qtr_3",
    "qtr_4"
   ],
   "access_sql": "TRANSFORM Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS ProductAmount\nSELECT DISTINCTROW Products.ProductName, Orders.CustomerID, Year([OrderDate]) AS OrderYear\nFROM Products INNER JOIN (Orders INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID\nWHERE (((Orders.OrderDate) Between #1/1/95# And #12/31/95#))\nGROUP BY Products.ProductName, Orders.CustomerID, Year([OrderDate])\nPIVOT \"Qtr \" & DatePart(\"q\",[OrderDate],1,0) In (\"Qtr 1\",\"Qtr 2\",\"Qtr 3\",\"Qtr 4\");",
   "ucanaccess_sql_example": "SELECT Products.ProductName, Orders.CustomerID, Year([OrderDate]) AS OrderYear, \"Qtr \" & DatePart(\"q\",[OrderDate],1,0) AS Pivot, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS ProductAmount\nFROM Products INNER JOIN (Orders INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID\nWHERE (((Orders.OrderDate) Between #1/1/1995# And #12/31/1995#))\nGROUP BY Products.ProductName, Orders.CustomerID, Year([OrderDate]), \"Qtr \" & DatePart(\"q\",[OrderDate],1,0)",
   "where": null,
   "adaptations": [
    "A1",
    "A5"
   ],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 914,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 12,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Sales by Category",
   "view": "sales_by_category",
   "columns": [
    "category_id",
    "category_name",
    "product_name",
    "product_sales"
   ],
   "access_sql": "SELECT DISTINCTROW Categories.CategoryID, Categories.CategoryName, Products.ProductName, Sum([Order Details Extended].ExtendedPrice) AS ProductSales\nFROM Categories INNER JOIN (Products INNER JOIN (Orders INNER JOIN [Order Details Extended] ON Orders.OrderID = [Order Details Extended].OrderID) ON Products.ProductID = [Order Details Extended].ProductID) ON Categories.CategoryID = Products.CategoryID\nWHERE (((Orders.OrderDate) Between #1/1/95# And #12/31/95#))\nGROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName\nORDER BY Products.ProductName;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Categories.CategoryID, Categories.CategoryName, Products.ProductName, Sum([Order Details Extended].ExtendedPrice) AS ProductSales\nFROM Categories INNER JOIN (Products INNER JOIN (Orders INNER JOIN [Order Details Extended] ON Orders.OrderID = [Order Details Extended].OrderID) ON Products.ProductID = [Order Details Extended].ProductID) ON Categories.CategoryID = Products.CategoryID\nWHERE (((Orders.OrderDate) Between #1/1/1995# And #12/31/1995#))\nGROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName\nORDER BY Products.ProductName;",
   "where": null,
   "adaptations": [
    "A1"
   ],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 77,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 10,
   "failures": [],
   "order": {
    "keys": [
     "product_name"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Sales by Year",
   "view": "sales_by_year",
   "columns": [
    "shipped_date",
    "order_id",
    "subtotal",
    "year"
   ],
   "access_sql": "PARAMETERS Forms!Sales by Year Dialog!BeginningDate DateTime, Forms!Sales by Year Dialog!EndingDate DateTime;\nSELECT DISTINCTROW Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal, Format([ShippedDate],\"yyyy\") AS Year\nFROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID\nWHERE (((Orders.ShippedDate) Is Not Null And (Orders.ShippedDate) Between [Forms]![Sales by Year Dialog]![BeginningDate] And [Forms]![Sales by Year Dialog]![EndingDate]));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal, Format([ShippedDate],\"yyyy\") AS Year\nFROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID\nWHERE (((Orders.ShippedDate) Is Not Null And (Orders.ShippedDate) Between #1/1/1995# And #12/31/1995#));",
   "where": "shipped_date BETWEEN ? AND ?",
   "adaptations": [
    "A2"
   ],
   "discount_dependent": true,
   "runs": 3,
   "rows_total": 1299,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 28,
   "failures": [],
   "order": null,
   "param_labels": [
    "1995-01-01 .. 1995-12-31",
    "1994-01-01 .. 1996-12-31",
    "1995-07-01 .. 1995-09-30"
   ],
   "pass": true
  },
  {
   "access": "Sales Totals by Amount",
   "view": "sales_totals_by_amount",
   "columns": [
    "sale_amount",
    "order_id",
    "company_name",
    "shipped_date"
   ],
   "access_sql": "SELECT DISTINCTROW [Order Subtotals].Subtotal AS SaleAmount, Orders.OrderID, Customers.CompanyName, Orders.ShippedDate\nFROM Customers INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID) ON Customers.CustomerID = Orders.CustomerID\nWHERE ((([Order Subtotals].Subtotal)>2500) AND ((Orders.ShippedDate) Between #1/1/95# And #12/31/95#));",
   "ucanaccess_sql_example": "SELECT DISTINCTROW [Order Subtotals].Subtotal AS SaleAmount, Orders.OrderID, Customers.CompanyName, Orders.ShippedDate\nFROM Customers INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID) ON Customers.CustomerID = Orders.CustomerID\nWHERE ((([Order Subtotals].Subtotal)>2500) AND ((Orders.ShippedDate) Between #1/1/1995# And #12/31/1995#));",
   "where": null,
   "adaptations": [
    "A1"
   ],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 61,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 4,
   "failures": [],
   "order": null,
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Summary of Sales by Quarter",
   "view": "summary_of_sales_by_quarter",
   "columns": [
    "shipped_date",
    "order_id",
    "subtotal"
   ],
   "access_sql": "SELECT DISTINCTROW Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal\nFROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID\nWHERE (((Orders.ShippedDate) Is Not Null))\nORDER BY Orders.ShippedDate;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal\nFROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID\nWHERE (((Orders.ShippedDate) Is Not Null))\nORDER BY Orders.ShippedDate;",
   "where": null,
   "adaptations": [],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 809,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 15,
   "failures": [],
   "order": {
    "keys": [
     "shipped_date"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Summary of Sales by Year",
   "view": "summary_of_sales_by_year",
   "columns": [
    "shipped_date",
    "order_id",
    "subtotal"
   ],
   "access_sql": "SELECT DISTINCTROW Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal\nFROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID\nWHERE (((Orders.ShippedDate) Is Not Null))\nORDER BY Orders.ShippedDate;",
   "ucanaccess_sql_example": "SELECT DISTINCTROW Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal\nFROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID\nWHERE (((Orders.ShippedDate) Is Not Null))\nORDER BY Orders.ShippedDate;",
   "where": null,
   "adaptations": [],
   "discount_dependent": true,
   "runs": 1,
   "rows_total": 809,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 15,
   "failures": [],
   "order": {
    "keys": [
     "shipped_date"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  },
  {
   "access": "Ten Most Expensive Products",
   "view": "ten_most_expensive_products",
   "columns": [
    "ten_most_expensive_products",
    "unit_price"
   ],
   "access_sql": "SELECT DISTINCTROW TOP 10 Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice\nFROM Products\nORDER BY Products.UnitPrice DESC;",
   "ucanaccess_sql_example": "SELECT TOP 10 Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice\nFROM Products\nORDER BY Products.UnitPrice DESC;",
   "where": null,
   "adaptations": [
    "A4",
    "A6"
   ],
   "discount_dependent": false,
   "runs": 1,
   "rows_total": 10,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "access_float_rows_differing": 0,
   "failures": [],
   "order": {
    "keys": [
     "unit_price"
    ],
    "same_as_ucanaccess": true,
    "positions_differing": 0,
    "first_difference": null
   },
   "param_labels": [],
   "pass": true
  }
 ],
 "calculations": [
  {
   "name": "Order totals (lines, subtotal after discount, freight, total)",
   "rows": 830,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "pass": true,
   "access_float_rows_differing": 17,
   "ucanaccess_columns": [
    "order_id",
    "line_count",
    "subtotal",
    "freight",
    "total"
   ],
   "new_sql": "SELECT order_id, line_count, subtotal, freight, total FROM order_totals",
   "ucanaccess_sql": "SELECT Orders.OrderID, Count([Order Details].ProductID) AS LineCount, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS Subtotal, Orders.Freight, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100)+Orders.Freight AS Total FROM Orders LEFT JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID GROUP BY Orders.OrderID, Orders.Freight",
   "failures": [],
   "sample": [
    [
     "10248",
     "3",
     "440.0",
     "32.38",
     "472.38"
    ],
    [
     "10249",
     "2",
     "1863.4",
     "11.61",
     "1875.01"
    ],
    [
     "10250",
     "3",
     "1552.6",
     "65.83",
     "1618.43"
    ]
   ]
  },
  {
   "name": "Invoice report figures (from the Invoices query: subtotal, freight, total per order)",
   "rows": 830,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "pass": true,
   "access_float_rows_differing": 17,
   "ucanaccess_columns": [
    "order_id",
    "subtotal",
    "freight",
    "total"
   ],
   "new_sql": "SELECT order_id, subtotal, freight, total FROM order_totals WHERE order_id IN (SELECT order_id FROM invoices)",
   "ucanaccess_sql": "SELECT Invoices.OrderID, Sum(Invoices.ExtendedPrice) AS Subtotal, Invoices.Freight, Sum(Invoices.ExtendedPrice)+Invoices.Freight AS Total FROM (SELECT DISTINCTROW Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country, [FirstName] & \" \" & [LastName] AS Salesperson, Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName, [Order Details].ProductID, Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].Discount, CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100 AS ExtendedPrice, Orders.Freight\nFROM Shippers INNER JOIN (Products INNER JOIN ((Employees INNER JOIN (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) ON Employees.EmployeeID = Orders.EmployeeID) INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID) ON Shippers.ShipperID = Orders.ShipVia) AS Invoices GROUP BY Invoices.OrderID, Invoices.Freight",
   "failures": [],
   "sample": [
    [
     "10248",
     "440.0",
     "32.38",
     "472.38"
    ],
    [
     "10249",
     "1863.4",
     "11.61",
     "1875.01"
    ],
    [
     "10250",
     "1552.6",
     "65.83",
     "1618.43"
    ]
   ]
  },
  {
   "name": "Sales by category and year (order date)",
   "rows": 24,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "pass": true,
   "access_float_rows_differing": 12,
   "ucanaccess_columns": [
    "category_id",
    "category_name",
    "order_year",
    "units",
    "sales"
   ],
   "new_sql": "SELECT category_id, category_name, order_year, order_count, units, sales FROM sales_by_category_year",
   "ucanaccess_sql": "SELECT Categories.CategoryID, Categories.CategoryName, Year(Orders.OrderDate) AS OrderYear, Sum([Order Details].Quantity) AS Units, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS Sales FROM ((Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID) INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID) INNER JOIN Orders ON Orders.OrderID = [Order Details].OrderID GROUP BY Categories.CategoryID, Categories.CategoryName, Year(Orders.OrderDate)",
   "failures": [],
   "sample": [
    [
     "1",
     "Beverages",
     "1994",
     "56",
     "1537",
     "38487.2"
    ],
    [
     "1",
     "Beverages",
     "1995",
     "150",
     "3803",
     "102479.46"
    ],
    [
     "1",
     "Beverages",
     "1996",
     "148",
     "4192",
     "126901.52"
    ]
   ]
  },
  {
   "name": "Sales by year and quarter (shipped date)",
   "rows": 8,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "pass": true,
   "access_float_rows_differing": 7,
   "ucanaccess_columns": [
    "ship_year",
    "ship_quarter",
    "order_count",
    "sales"
   ],
   "new_sql": "SELECT ship_year, ship_quarter, order_count, sales FROM sales_by_year_quarter",
   "ucanaccess_sql": "SELECT Year(Orders.ShippedDate) AS Y, DatePart(\"q\", Orders.ShippedDate) AS Q, Count(*) AS N, Sum([Order Subtotals].Subtotal) AS Sales FROM Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID WHERE Orders.ShippedDate Is Not Null GROUP BY Year(Orders.ShippedDate), DatePart(\"q\", Orders.ShippedDate)",
   "failures": [],
   "sample": [
    [
     "1994",
     "3",
     "40",
     "45955.05"
    ],
    [
     "1994",
     "4",
     "71",
     "101182.73"
    ],
    [
     "1995",
     "1",
     "92",
     "142367.73"
    ]
   ]
  },
  {
   "name": "Grand total of all order lines",
   "rows": 1,
   "model_pass": true,
   "ucanaccess_pass": true,
   "postgresql_pass": true,
   "sqljs_pass": true,
   "pass": true,
   "access_float_rows_differing": 1,
   "ucanaccess_columns": [
    "n",
    "total"
   ],
   "new_sql": "SELECT count(*) AS n, sum(line_cents) / 100.0 AS total FROM order_line_amounts",
   "ucanaccess_sql": "SELECT Count(*) AS N, Sum(CCur([Order Details].[UnitPrice]*[Quantity]*(1-[Discount])/100)*100) AS Total FROM [Order Details]",
   "failures": [],
   "sample": [
    [
     "2155",
     "1265793.02"
    ]
   ]
  }
 ],
 "d1": {
  "lines": 2155,
  "differing": 18,
  "rows": [
   {
    "order_id": 10324,
    "product_id": 16,
    "unit_price": "13.9000",
    "quantity": 21,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "248.115000",
    "new": "248.12",
    "access_float": "248.11"
   },
   {
    "order_id": 10403,
    "product_id": 16,
    "unit_price": "13.9000",
    "quantity": 21,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "248.115000",
    "new": "248.12",
    "access_float": "248.11"
   },
   {
    "order_id": 10429,
    "product_id": 63,
    "unit_price": "35.1000",
    "quantity": 35,
    "discount": "0.25",
    "discount_single": "0.25",
    "exact": "921.375000",
    "new": "921.38",
    "access_float": "921.37"
   },
   {
    "order_id": 10440,
    "product_id": 16,
    "unit_price": "13.9000",
    "quantity": 49,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "578.935000",
    "new": "578.94",
    "access_float": "578.93"
   },
   {
    "order_id": 10549,
    "product_id": 31,
    "unit_price": "12.5000",
    "quantity": 55,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "584.375000",
    "new": "584.38",
    "access_float": "584.37"
   },
   {
    "order_id": 10605,
    "product_id": 71,
    "unit_price": "21.5000",
    "quantity": 15,
    "discount": "0.05",
    "discount_single": "0.0500000007450580596923828125",
    "exact": "306.375000",
    "new": "306.38",
    "access_float": "306.37"
   },
   {
    "order_id": 10616,
    "product_id": 38,
    "unit_price": "263.5000",
    "quantity": 15,
    "discount": "0.05",
    "discount_single": "0.0500000007450580596923828125",
    "exact": "3754.875000",
    "new": "3754.88",
    "access_float": "3754.87"
   },
   {
    "order_id": 10616,
    "product_id": 71,
    "unit_price": "21.5000",
    "quantity": 15,
    "discount": "0.05",
    "discount_single": "0.0500000007450580596923828125",
    "exact": "306.375000",
    "new": "306.38",
    "access_float": "306.37"
   },
   {
    "order_id": 10648,
    "product_id": 24,
    "unit_price": "4.5000",
    "quantity": 15,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "57.375000",
    "new": "57.38",
    "access_float": "57.37"
   },
   {
    "order_id": 10656,
    "product_id": 14,
    "unit_price": "23.2500",
    "quantity": 3,
    "discount": "0.1",
    "discount_single": "0.100000001490116119384765625",
    "exact": "62.77500",
    "new": "62.78",
    "access_float": "62.77"
   },
   {
    "order_id": 10668,
    "product_id": 64,
    "unit_price": "33.2500",
    "quantity": 15,
    "discount": "0.1",
    "discount_single": "0.100000001490116119384765625",
    "exact": "448.87500",
    "new": "448.88",
    "access_float": "448.87"
   },
   {
    "order_id": 10721,
    "product_id": 44,
    "unit_price": "19.4500",
    "quantity": 50,
    "discount": "0.05",
    "discount_single": "0.0500000007450580596923828125",
    "exact": "923.875000",
    "new": "923.88",
    "access_float": "923.87"
   },
   {
    "order_id": 10730,
    "product_id": 65,
    "unit_price": "21.0500",
    "quantity": 10,
    "discount": "0.05",
    "discount_single": "0.0500000007450580596923828125",
    "exact": "199.975000",
    "new": "199.98",
    "access_float": "199.97"
   },
   {
    "order_id": 10776,
    "product_id": 45,
    "unit_price": "9.5000",
    "quantity": 27,
    "discount": "0.05",
    "discount_single": "0.0500000007450580596923828125",
    "exact": "243.675000",
    "new": "243.68",
    "access_float": "243.67"
   },
   {
    "order_id": 10800,
    "product_id": 54,
    "unit_price": "7.4500",
    "quantity": 7,
    "discount": "0.1",
    "discount_single": "0.100000001490116119384765625",
    "exact": "46.93500",
    "new": "46.94",
    "access_float": "46.93"
   },
   {
    "order_id": 10978,
    "product_id": 44,
    "unit_price": "19.4500",
    "quantity": 6,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "99.195000",
    "new": "99.20",
    "access_float": "99.19"
   },
   {
    "order_id": 11070,
    "product_id": 16,
    "unit_price": "17.4500",
    "quantity": 30,
    "discount": "0.15",
    "discount_single": "0.1500000059604644775390625",
    "exact": "444.975000",
    "new": "444.98",
    "access_float": "444.97"
   },
   {
    "order_id": 11077,
    "product_id": 64,
    "unit_price": "33.2500",
    "quantity": 2,
    "discount": "0.03",
    "discount_single": "0.02999999932944774627685546875",
    "exact": "64.505000",
    "new": "64.50",
    "access_float": "64.51"
   }
  ],
  "total_new": "1265793.02",
  "total_access_float": "1265792.86",
  "orders_affected": 17
 },
 "constraints": [
  {
   "name": "Order line with quantity 0 (Access rule >0)",
   "sql": "UPDATE order_details SET quantity = 0 WHERE order_id = 10248 AND product_id = 11",
   "pass": true,
   "error": "CHECK constraint failed: quantity > 0",
   "pass_postgresql": true
  },
  {
   "name": "Discount above 100% (Access rule Between 0 And 1)",
   "sql": "UPDATE order_details SET discount = 1.5 WHERE order_id = 10248 AND product_id = 11",
   "pass": true,
   "error": "CHECK constraint failed: discount BETWEEN 0 AND 1",
   "pass_postgresql": true
  },
  {
   "name": "Negative unit price (Access rule >=0)",
   "sql": "UPDATE products SET unit_price = -1 WHERE product_id = 1",
   "pass": true,
   "error": "CHECK constraint failed: unit_price >= 0",
   "pass_postgresql": true
  },
  {
   "name": "Order for a customer that does not exist (relationship)",
   "sql": "UPDATE orders SET customer_id = 'ZZZZZ' WHERE order_id = 10248",
   "pass": true,
   "error": "FOREIGN KEY constraint failed",
   "pass_postgresql": true
  },
  {
   "name": "Order line for a product that does not exist (relationship)",
   "sql": "INSERT INTO order_details VALUES (10248, 999, 1, 1, 0)",
   "pass": true,
   "error": "FOREIGN KEY constraint failed",
   "pass_postgresql": true
  },
  {
   "name": "Duplicate product on the same order (primary key)",
   "sql": "INSERT INTO order_details VALUES (10248, 11, 1, 1, 0)",
   "pass": true,
   "error": "UNIQUE constraint failed: order_details.order_id, order_details.product_id",
   "pass_postgresql": true
  },
  {
   "name": "Delete a product that has order lines (relationship)",
   "sql": "DELETE FROM products WHERE product_id = 11",
   "pass": true,
   "error": "FOREIGN KEY constraint failed",
   "pass_postgresql": true
  },
  {
   "name": "Birth date in the future (Access rule <Date())",
   "sql": "UPDATE employees SET birth_date = '2999-01-01' WHERE employee_id = 1",
   "pass": true,
   "error": "Birth date can't be in the future.",
   "pass_postgresql": true
  },
  {
   "name": "Impossible date 31/02 (date type)",
   "sql": "UPDATE orders SET order_date = '1995-02-31' WHERE order_id = 10248",
   "pass": true,
   "error": "CHECK constraint failed: order_date IS NULL OR (date(order_date) IS NOT NULL AND date(order_date) = order_date)",
   "pass_postgresql": true
  },
  {
   "name": "Product name missing (required)",
   "sql": "UPDATE products SET product_name = NULL WHERE product_id = 1",
   "pass": true,
   "error": "NOT NULL constraint failed: products.product_name",
   "pass_postgresql": true
  },
  {
   "name": "Company name longer than 40 characters (field size)",
   "sql": "UPDATE customers SET company_name = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' WHERE customer_id = 'ALFKI'",
   "pass": true,
   "error": "CHECK constraint failed: length(company_name) <= 40",
   "pass_postgresql": true
  },
  {
   "name": "Price with fractions of a cent",
   "sql": "UPDATE products SET unit_price = 1.005 WHERE product_id = 1",
   "pass": true,
   "error": "CHECK constraint failed: unit_price = round(unit_price, 2)",
   "pass_postgresql": true
  },
  {
   "name": "Customer code in lower case",
   "sql": "INSERT INTO customers (customer_id, company_name) VALUES ('abcde', 'Test')",
   "pass": true,
   "error": "CHECK constraint failed: length(customer_id) = 5 AND customer_id = upper(customer_id)",
   "pass_postgresql": true
  },
  {
   "name": "Employee reporting to himself",
   "sql": "UPDATE employees SET reports_to = employee_id WHERE employee_id = 2",
   "pass": true,
   "error": "CHECK constraint failed: reports_to IS NULL OR reports_to <> employee_id",
   "pass_postgresql": true
  },
  {
   "name": "Writing to the read-only archive",
   "sql": "DELETE FROM legacy_umsaetze WHERE order_id = 10248",
   "pass": true,
   "error": "legacy_umsaetze is a read-only archive",
   "pass_postgresql": true
  },
  {
   "name": "Deleting an order deletes its 3 lines (Access: cascade delete)",
   "sql": "DELETE FROM orders WHERE order_id = 10248",
   "pass": true,
   "error": null,
   "check_sql": "SELECT count(*) FROM order_details WHERE order_id = 10248",
   "expect": "0",
   "pass_postgresql": true
  },
  {
   "name": "Renaming a customer code updates its 6 orders (Access: cascade update)",
   "sql": "UPDATE customers SET customer_id = 'ALFKX' WHERE customer_id = 'ALFKI'",
   "pass": true,
   "error": null,
   "check_sql": "SELECT count(*) FROM orders WHERE customer_id = 'ALFKX'",
   "expect": "6",
   "pass_postgresql": true
  }
 ],
 "finished": "2026-10-08T02:05:43+02:00",
 "seconds": 88.7,
 "summary": {
  "tables": 9,
  "tables_pass": 9,
  "rows": 4032,
  "queries": 22,
  "queries_pass": 22,
  "query_runs": 855,
  "calculations": 5,
  "calculations_pass": 5,
  "constraints": 17,
  "constraints_pass": 17
 }
}