Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / General 2 / January 2008

Tip: Looking for answers? Try searching our database.

How do I choose the 1st invoice record from each customer?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Art@ISCO - 15 Jan 2008 22:24 GMT
I need to run a query to pull the 1st invoice from each new customer for the
year.  Here is what I have done so far (probably not correct, but I tried).

Thanks,
Art

SELECT DISTINCT [AJG revised 1st invoice date].[Customer Number], [AJG
revised 1st invoice date].[Customer Name], Shipments.invoice_number,
Shipments.invoice_date, Shipments.invoice_amount, Shipments.ar_number,
Shipments.ar_name
FROM Shipments INNER JOIN [AJG revised 1st invoice date] ON
Shipments.ar_number = [AJG revised 1st invoice date].[Customer Number]
Where Shipments.Invoice_number in (Select Top 1 Shipments.Invoice_number
From Shipments as 1
Where Shipments.invoice_number = Shipments.Invoice_number
Order by Shipments.Invoice_number)
Jeanette Cunningham - 15 Jan 2008 23:40 GMT
Art,
something like this

SELECT [AJG revised 1st invoice date].[Customer Number], [AJG
revised 1st invoice date].[Customer Name], Shipments.invoice_number,
Shipments.invoice_date, Shipments.invoice_amount, Shipments.ar_number,
Shipments.ar_name
FROM Shipments INNER JOIN [AJG revised 1st invoice date] ON
Shipments.ar_number = [AJG revised 1st invoice date].[Customer Number]
WHERE (Select Min(Shipments.invoice_date) As MinOfDate From Shipments FROM
Shipments INNER JOIN [AJG revised 1st invoice date] ON Shipments.ar_number =
[AJG revised 1st invoice date].[Customer Number])
ORDER BY Shipments.Invoice_number;

The above assumes that your data only has records for the current year.

Jeanette Cunningham
>I need to run a query to pull the 1st invoice from each new customer for
>the
[quoted text clipped - 14 lines]
> Where Shipments.invoice_number = Shipments.Invoice_number
> Order by Shipments.Invoice_number)
John W. Vinson - 15 Jan 2008 23:43 GMT
>I need to run a query to pull the 1st invoice from each new customer for the
>year.  Here is what I have done so far (probably not correct, but I tried).
[quoted text clipped - 12 lines]
>Where Shipments.invoice_number = Shipments.Invoice_number
>Order by Shipments.Invoice_number)

Well, this will find those records where Shipments.invoice_number is equal to
itself. Since everything is by definition equal to itself, that's all the
records, and your WHERE clause does exactly nothing.

What is [AJG Revised 1st Invoice date]?
Why the "as 1"? What's that intended to do?

Maybe this needs to be:

SELECT DISTINCT [AJG revised 1st invoice date].[Customer Number],
[AJG revised 1st invoice date].[Customer Name],
Shipments.invoice_number, Shipments.invoice_date, Shipments.invoice_amount,
Shipments.ar_number, Shipments.ar_name
FROM Shipments
INNER JOIN [AJG revised 1st invoice date]
ON Shipments.ar_number = [AJG revised 1st invoice date].[Customer Number]
Where Shipments.Invoice_number in
(Select Top 1 Shipments.Invoice_number From Shipments as Latest
Where Latest.invoice_number = Shipments.Invoice_number
AND Latest.invoice_date >= DateSerial(Year(Date()), 1, 1)
Order by Shipments.Invoice_number DESC);

You want the earliest shipment *this year*, not the most recent shipment,
hence the additiona invoice_date criterion and the DESC.

            John W. Vinson [MVP]
Art@ISCO - 16 Jan 2008 17:49 GMT
Hello All,
I am redoing the query and here is what I have so far:
This query is pulling all the invoices for the customers setup in 2007.  I
need only the first record.

Thanks for your help.
Art  
SELECT DISTINCT RM00101USA.CUSTNMBR, RM00101USA.CUSTNAME,
RM00101USA.CUSTCLAS, RM00101USA.CREATDDT, Shipments.invoice_number,
Shipments.invoice_date, RM00101USA.ADDRESS1, RM00101USA.ADDRESS2,
RM00101USA.CITY, RM00101USA.STATE, Shipments.invoice_amount
FROM RM00101USA INNER JOIN Shipments ON RM00101USA.CUSTNMBR =
Shipments.ar_number
WHERE (((RM00101USA.CREATDDT)>#12/31/2006#));

> I need to run a query to pull the 1st invoice from each new customer for the
> year.  Here is what I have done so far (probably not correct, but I tried).
[quoted text clipped - 12 lines]
> Where Shipments.invoice_number = Shipments.Invoice_number
> Order by Shipments.Invoice_number)
Jeanette Cunningham - 16 Jan 2008 19:53 GMT
Art,
try this

SELECT RM00101USA.CUSTNBR, RM00101USA.CUSTNAME, RM00101USA.CUSTCLAS,
RM00101USA.CREATDDT, Shipments.invoice_number, Shipments.invoice_date,
RM00101USA.ADDRESS1, RM00101USA.ADDRESS2, RM00101USA.CITY, RM00101USA.STATE,
Shipments.invoice_amount
FROM RM00101USA INNER JOIN Shipments ON RM00101USA.CUSTNBR =
Shipments.ar_number
WHERE (((Shipments.invoice_date)=(SELECT Min(Shipments.invoice_date) AS
MinOfinvoice_date FROM RM00101USA INNER JOIN Shipments ON RM00101USA.CUSTNBR
= Shipments.ar_number) And [RM00101USA].[CREATDDT]>#12/31/2006#));

Jeanette Cunningham

> Hello All,
> I am redoing the query and here is what I have so far:
[quoted text clipped - 29 lines]
>> Where Shipments.invoice_number = Shipments.Invoice_number
>> Order by Shipments.Invoice_number)
John W. Vinson - 16 Jan 2008 20:02 GMT
>Hello All,
>I am redoing the query and here is what I have so far:
[quoted text clipped - 10 lines]
>Shipments.ar_number
>WHERE (((RM00101USA.CREATDDT)>#12/31/2006#));

The first record for each custnmbr in creatddt order? "First record" is
ambiguous...

If so:

SELECT  RM00101USA.CUSTNMBR, RM00101USA.CUSTNAME,
RM00101USA.CUSTCLAS, RM00101USA.CREATDDT, Shipments.invoice_number,
Shipments.invoice_date, RM00101USA.ADDRESS1, RM00101USA.ADDRESS2,
RM00101USA.CITY, RM00101USA.STATE, Shipments.invoice_amount
FROM RM00101USA INNER JOIN Shipments ON RM00101USA.CUSTNMBR =
Shipments.ar_number
WHERE (((RM00101USA.CREATDDT)>#12/31/2006#))
AND Shipments.invoice_date = (SELECT Min([invoice_date]) FROM Shipments AS S
WHERE S.ar_number = RM00101USA.CUSTNMBR AND S.[invoice_date] >= #1/1/07# AND
S.invoice_date < #1/1/08#);

            John W. Vinson [MVP]
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.