Ladies and gentlemen,
I give you THE FRANKENQUERY!
Code:
SELECT
CUST2.CustNo AS OldCustID,
CUST2.CustInvNo AS OldBillToID,
CST2.ShpCustShipTo AS OldShipToID,
Left([CustNo],6) AS NewCustID,
(
SELECT
Count([CUST].[CustNo])
FROM
Customers AS CUST
WHERE
[CUST].[CustNo] LIKE Left([CUST2].[CustNo], 6) & "*" AND
[CUST].[CustNo] <= [CUST2].[CustNo]
) AS NewBillToID,
(
SELECT
Count([CST].[ShpCustShipTo])
FROM
CustShipTo AS CST
WHERE
[CST].[ShpCustSoldTo] = [CUST2].[CustInvNo] AND
[CST].[ShpCustShipTo] <= [CST2].[ShpCustShipTo]
) AS NewShipToID
FROM
CustShipTo AS CST2
INNER JOIN
Customers AS CUST2
ON
CST2.ShpCustSoldTo = CUST2.CustInvNo
ORDER BY
CustNo,
CustInvNo,
ShpCustShipTo;