Max date per sub_nr

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 1276336

Topicstarter
Beste SQL deskundigen,

Ik wil graag per sub_nr de laatste Paid_date van een inv_nr. Zie query die ik nu heb:

Select tr.sub_nr, tr.inv_nr, tr.dj_code, opi.date_paid
from transact tr
inner join openitem opi
on opi.inv_nr = tr.inv_nr
inner join contact con
on tr.sub_nr = con.sub_nr
where tr.dj_code not in ('900','10','20')
and con.acct_link = 2
group by tr.sub_nr

Ik heb dingen gelezen over een sub query, maar geen idee hoe ik dit erin moet krijgen en waar ik op moet letten. Ik werk met Fox Pro.

Heel veel dank.
E

Alle reacties


Acties:
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Nu online
Uit de documentatie:
The following field functions are available for use with a select item that is a field or an expression involving a field:
  • AVG(Select_Item), which averages a column of numeric data.
  • COUNT(Select_Item), which counts the number of select items in a column. COUNT(*) counts the number of rows in the query output.
  • MIN(Select_Item), which determines the smallest value of Select_Item in a column.
  • MAX(Select_Item), which determines the largest value of Select_Item in a column.
  • SUM(Select_Item), which totals a column of numeric data.
Overigens komt deze databaselayout me bekend voor.

Staat er in OPENITEM niet per definitie maar één regel per inv_nr (combinatie sub_nr + inv_nr)?

Dj_code en sub_nr staan ook in OPENITEM, dus de join naar TRANSACT lijkt hier niet nodig. Zo wel, dan zou ik op basis van een samengestelde key (sub_nr + dj_code + inv_nr) joinen en niet alleen inv_nr.

M.a.w. als je TRANSACT uit je query haalt, houd je dezelfde info over en is er geen GROUP BY / MAX meer nodig.

[ Voor 26% gewijzigd door nescafe op 15-11-2019 11:10 ]

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Sowieso doe je nu een group-by, zonder dat je de waardes aggregeert. MySql FoxPro geeft hier onterecht geen fout op, maar het uitgangspunt is dat je alle velden in je SELECT clause, waar niet op gegroepeerd wordt, moet aggregeren.

Dat is dus een van de functies die aangehaald worden door @nescafe

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Scoutertje
  • Registratie: Juli 2004
  • Laatst online: 00:08
Zie hiervoor ook het commando SET ENGINEBEHAVIOUR:
https://docs.microsoft.co.../foxpro/ax9aye37(v=vs.80)