加入三个表格,只有最大日期 [英] JOIN three tabels with only max date

查看:93
本文介绍了加入三个表格,只有最大日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好

请帮助

我不能自己做。

我有三张桌子:

Towary,Kontrahenci和TwrIlosci



TWrIlosci表链接到第一个via id并包含不同日期的条目。

我' d只想显示最后日期的条目



我有这个查询,但它显示所有条目



很抱歉,我忘了粘贴数据

< pre>
Table Towary
twr_kod twr_nazwa twr_numerkat twr_koddostawcy twr_iloscmin
MECCZ-TK7598 / A PAL 0.0000
MECCZ-TK7605 NAPY 0.0000
MECCZ-TK7722 KOLO 1 0.0000
MECCZ -TK7723 KOLO 2 0.0000
MECCZ-TK7741 ZEST 0.0000



表Kontrahenci 
knt_kod knt_kntid
!NIEOKREŚLONY! 1
00000 1853
10-05-1039 2239
10-05-1052 2253
10-05-1090 2309





表格TwrIlosci 
twi_ilosc twi_rezerwacje twi_zamowienia twi_data TwI_TwrId
0.0000 0.0000 0.0000 2011-05-05 00:00:00.000 57
1.0000 0.0000 0.0000 2011-04-30 00:00:00.000 57
0.0000 0.0000 0.0000 2011-05-05 00:00:00.000 57
1.0000 0.0000 0.0000 2011-04-30 00:00:00.000 57
0.0000 0.0000 0.0000 2017-06-20 00:00:00.000 132





我的查询的示例答案

 twr_kod twr_nazwa twr_numerkat twr_koddostawcy knt_kod twr_iloscmin twi_ilosc twi_rezerwacje twi_zamowienia twi_data 
MSP321528-0-00 ZTYLNIE 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2011-05-05 00:00: 00.000
MSP321528-0-00 ZTYLNIE 6-10-11-MSP 0.0000 1.0000 0.0000 0.0000 2011-04-30 00:00:00.000
MSP321528-0-00 ZTYLNIE 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2011-05-05 00:00:00.000
MSP3 21528-0-00 ZTYLNIE 6-10-11-MSP 0.0000 1.0000 0.0000 0.0000 2011-04-30 00:00:00.000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2017-06-20 00:00:00.000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2012-05-22 00:00:00.000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10-11-MSP 0.0000 10.0000 0.0000 0.0000 2012-05-17 00:00:00.000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10- 11-MSP 0.0000 0.0000 0.0000 0.0000 2017-06-20 00:00:00.000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2012-05-22 00:00 :00.000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10-11-MSP 0.0000 10.0000 0.0000 0.0000 2012-05-17 00:00:00.000
MSPRM101572-012 CHWYTACZ C 6-10- 11-MSP 0.0000 0.0000 0.0000 0.0000 2015-05-07 00:00:00.000
MSPRM101572-012 CHWYTACZ C 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2015-05-07 00:00:00.000
MSPRM202092-0-1 CHWYTACZ G 6-10-11-MSP 0.000 0 0.0000 0.0000 0.0000 2011-05-05 00:00:00.000
MSPRM202092-0-1 CHWYTACZ G 6-10-11-MSP 0.0000 1.0000 0.0000 0.0000 2011-04-30 00:00:00.000
MSPRM202092-0-1 CHWYTACZ G 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2011-05-05 00:00:00.000
MSPRM202092-0-1 CHWYTACZ G 6-10-11-MSP 0.0000 1.0000 0.0000 0.0000 2011-04-30 00:00:00.000
MSPRM202095-013 N DOLNY 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2016-10-17 00:00:00.000
MSPRM202095-013 N DOLNY 6 -10-11-MSP 0.0000 0.0000 0.0000 0.0000 2015-10-19 00:00:00.000
MSPRM202095-013 N DOLNY 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2016-10-17 00:00:00.000
MSPRM202095-013 N DOLNY 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2015-10-19 00:00:00.000





我只想:

 twr_kod twr_nazwa twr_numerkat twr_koddostawcy knt_kod twr_iloscmin twi_ilosc twi_rezerwacje twi_zamowienia twi_data 
MSP321528-0-00 ZTYLNIE 6-10-11- MSP 0.0000 0.0000 0.0000 0.0000 2011-05-05 00:00:00。 000
MSPRM100458-010 SRUBA SCREW RM100458-0-10 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2017-06-20 00:00:00.000
MSPRM101572-012 CHWYTACZ C 6-10-11 -MSP 0.0000 0.0000 0.0000 0.0000 2015-05-07 00:00:00.000
MSPRM202092-0-1 CHWYTACZ G 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2011-05-05 00:00:00.000
MSPRM202095-013 N DOLNY 6-10-11-MSP 0.0000 0.0000 0.0000 0.0000 2016-10-17 00:00:00.000





我的尝试:



  SELECT  
twr_kod,twr_nazwa,twr_numerkat,twr_koddostawcy,knt_kod,twr_iloscmin,twi_ilosc,twi_rezerwacje,twi_zamowienia,twi_data
FROM ((XL.Towary
INNER JOIN XL.Kontrahenci ON XL.Towary.twr_kntid = XL.Kontrahenci.knt_kntid)
INNER JOIN
XL。 TwrIlosci ON XL.TOWARY.Twr_TwrId = XL.TwrIlosci.TwI_TwrId)

解决方案

< blockquote>似乎你需要使用 MAX()OVER() [ ^ ]:

  SELECT   DISTINCT  twr_kod,twr_nazwa,twr_numerkat,twr_koddostawcy,knt_kod,twr_iloscmin,twi_ilosc,twi_rezerwacje,twi_zamowienia,twi_data 
FROM
SELECT TwrI_TwrId,twi_ilosc,twi_rezerwacje,twi_zamowienia,MAX(twi_data) OVER PARTITION BY TwI_TwrId O RDER BY twi_data DESC AS twi_data
FROM XL.TwrIlosci
AS TWI
INNER JOIN XL.TOWARY AS TWR < span class =code-keyword> ON TWR.Twr_TwrId = TWI.TwI_TwrId
INNER 加入 XL.Kontrahenci AS K ON TWR.twr_kntid = K.knt_kntid


尝试:

  SELECT   TOP   1  ...  ORDER   BY  MyDateColumn  DESC  

你的阙ry符合省略号。


Hello
Please help
I can't do it by myself.
I have three tables:
Towary, Kontrahenci and TwrIlosci

The TWrIlosci table is linked to the first via id and contains entries with different dates.
I'd like to display only the entries for the last date

I have this query but it shows all entries

Sorry for that I forgot to paste data

<pre>
Table Towary
twr_kod			twr_nazwa	twr_numerkat	twr_koddostawcy		twr_iloscmin
MECCZ-TK7598/A	PAL												0.0000
MECCZ-TK7605	NAPY											0.0000
MECCZ-TK7722	KOLO 1											0.0000
MECCZ-TK7723	KOLO 2											0.0000
MECCZ-TK7741	ZEST											0.0000


Table Kontrahenci
knt_kod			knt_kntid
!NIEOKREŚLONY!	1
00000			1853
10-05-1039		2239
10-05-1052		2253
10-05-1090		2309



Table TwrIlosci 
twi_ilosc	twi_rezerwacje		twi_zamowienia		twi_data					TwI_TwrId
0.0000		0.0000				0.0000				2011-05-05 00:00:00.000		57
1.0000		0.0000				0.0000				2011-04-30 00:00:00.000		57
0.0000		0.0000				0.0000				2011-05-05 00:00:00.000		57
1.0000		0.0000				0.0000				2011-04-30 00:00:00.000		57
0.0000		0.0000				0.0000				2017-06-20 00:00:00.000		132



An example answer to my query

twr_kod	twr_nazwa	twr_numerkat	twr_koddostawcy	knt_kod	twr_iloscmin	twi_ilosc	twi_rezerwacje	twi_zamowienia	twi_data
MSP321528-0-00	ZTYLNIE			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2011-05-05 00:00:00.000
MSP321528-0-00	ZTYLNIE			6-10-11-MSP	0.0000	1.0000	0.0000	0.0000	2011-04-30 00:00:00.000
MSP321528-0-00	ZTYLNIE			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2011-05-05 00:00:00.000
MSP321528-0-00	ZTYLNIE			6-10-11-MSP	0.0000	1.0000	0.0000	0.0000	2011-04-30 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2017-06-20 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2012-05-22 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	10.0000	0.0000	0.0000	2012-05-17 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2017-06-20 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2012-05-22 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	10.0000	0.0000	0.0000	2012-05-17 00:00:00.000
MSPRM101572-012	CHWYTACZ C			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2015-05-07 00:00:00.000
MSPRM101572-012	CHWYTACZ C			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2015-05-07 00:00:00.000
MSPRM202092-0-1	CHWYTACZ G			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2011-05-05 00:00:00.000
MSPRM202092-0-1	CHWYTACZ G			6-10-11-MSP	0.0000	1.0000	0.0000	0.0000	2011-04-30 00:00:00.000
MSPRM202092-0-1	CHWYTACZ G			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2011-05-05 00:00:00.000
MSPRM202092-0-1	CHWYTACZ G			6-10-11-MSP	0.0000	1.0000	0.0000	0.0000	2011-04-30 00:00:00.000
MSPRM202095-013	N DOLNY			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2016-10-17 00:00:00.000
MSPRM202095-013	N DOLNY			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2015-10-19 00:00:00.000
MSPRM202095-013	N DOLNY			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2016-10-17 00:00:00.000
MSPRM202095-013	N DOLNY			6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2015-10-19 00:00:00.000



I would like to have only:

twr_kod	twr_nazwa	twr_numerkat	twr_koddostawcy	knt_kod	twr_iloscmin	twi_ilosc	twi_rezerwacje	twi_zamowienia	twi_data
MSP321528-0-00	ZTYLNIE	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2011-05-05 00:00:00.000
MSPRM100458-010	SRUBA	SCREW	RM100458-0-10	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2017-06-20 00:00:00.000
MSPRM101572-012	CHWYTACZ C	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2015-05-07 00:00:00.000
MSPRM202092-0-1	CHWYTACZ G	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2011-05-05 00:00:00.000
MSPRM202095-013	N DOLNY	6-10-11-MSP	0.0000	0.0000	0.0000	0.0000	2016-10-17 00:00:00.000



What I have tried:

SELECT
twr_kod, twr_nazwa, twr_numerkat, twr_koddostawcy, knt_kod, twr_iloscmin, twi_ilosc, twi_rezerwacje, twi_zamowienia, twi_data
FROM ((XL.Towary
INNER JOIN XL.Kontrahenci ON XL.Towary.twr_kntid = XL.Kontrahenci.knt_kntid)
INNER JOIN 
XL.TwrIlosci ON XL.TOWARY.Twr_TwrId = XL.TwrIlosci.TwI_TwrId)

解决方案

Seems that you need to use MAX() OVER()[^]:

SELECT DISTINCT twr_kod, twr_nazwa, twr_numerkat, twr_koddostawcy, knt_kod, twr_iloscmin, twi_ilosc, twi_rezerwacje, twi_zamowienia, twi_data
FROM (
    SELECT TwrI_TwrId, twi_ilosc, twi_rezerwacje, twi_zamowienia, MAX(twi_data) OVER(PARTITION BY TwI_TwrId ORDER BY twi_data DESC) AS twi_data
    FROM XL.TwrIlosci
) AS TWI
    INNER JOIN XL.TOWARY AS TWR ON TWR.Twr_TwrId = TWI.TwI_TwrId
    INNER JOIN XL.Kontrahenci AS K ON TWR.twr_kntid = K.knt_kntid


Try:

SELECT TOP 1 ... ORDER BY MyDateColumn DESC

where your query fits in the ellipsis.


这篇关于加入三个表格,只有最大日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆