请教sql语句中group by写法

时间:2022-09-08 15:54:41
语句如下:
select B.VENDOR_NO,
B.UNIT_MEAS,
C.TYPE_DESIGNATION,
A.LOT_BATCH_NO,
A.LOCATION_NO,
A.TRANSACTION_ID,
A.ORDER_NO,
A.PART_NO,
B.DESCRIPTION,
A.quantity,
A.USERID,
A.DATE_APPLIED
from INVENTORY_TRANSACTION_HIST2 A,PURCHASE_RECEIPT_NEW B,INVENTORY_PART_TAB C
where TRANSACTION_CODE='INVM-IN'AND A.ORDER_NO=B.ORDER_NO 

我现在还要对DATE_APPLIED进行排序
请问group by DATE_APPLIED怎么来写。 

请大家指点一下,多谢!!!

10 个解决方案

#1


group   by   DATE_APPLIED后,其他的列要做什么操作呢?

#2


其它的不做操作。就是显示A B C三个表中字段然后以DATE_APPLIED字段,按照时间的早晚进行排序。已经用了WHERE语句了 group by不知道如何写了,应该写在什么位置  请指教,多谢!

#3


实际我想达到的目的是显示A B C 3个表中的字段 
同时TRANSACTION_CODE='INVM-IN'AND   
    A.ORDER_NO=B.ORDER_NO   
在将DATE_APPLIED字段按照时间进行排序。

#4


我现在还要对DATE_APPLIED进行排序 
就ORDER BY DATE_APPLIED

#5


楼上说得是想排序用ORDER BY 字段名,group by 是分组

#6


是我没有说清楚 用group by对字段DATE_APPLIED 进行分组 
问题是select语句中
对TRANSACTION_CODE字段值等于INVM-IN  要用WHERE 
对DATE_APPLIED  用 group by 谁能写一下

select...from... where...group如何使用的问题。 
    

#7


select 分组字段列表,加上聚集函数(字段)比如COUNT(*)
WHERE 表达式
group by 分组字段列表
having 表达式;

前面选择的字段要么与DATE_APPLIED一起作为分组字段,要么都不要列出

#8


好像搂主都没有提到用什么样的聚集函数,假如只是想order by的话,都不需要group by的。

group by不是用来排序的。虽然有的版本有默认的排序作用。

难道LZ想要的,

Select A.DATE_APPLIED,聚集函数(A.OtherField),...
From INVENTORY_TRANSACTION_HIST2   A,PURCHASE_RECEIPT_NEW   B,INVENTORY_PART_TAB   C
Where A.TRANSACTION_CODE='INVM-IN' AND A.ORDER_NO=B.ORDER_NO   
Group By A.DATE_APPLIED
Order By A.DATE_APPLIED

怎么和C的连接关系都没有呢?赫赫。

#9


是不是没搞清楚是排序 order by 还是分组group by

#10


楼主 你上面的语句执行出来,是不是N多条记录呀,因为你的连接没有和C发生关系....^_^
---------------------
如果是order by (排序) 这个很简单 在你的语句末尾加上 Order   By   A.DATE_APPLIED 
如果要group by (分组) 你这样的写法似乎不对,group by 是对你提取的所有字段都要跟在其后面,否则会报错 ^_^

#1


group   by   DATE_APPLIED后,其他的列要做什么操作呢?

#2


其它的不做操作。就是显示A B C三个表中字段然后以DATE_APPLIED字段,按照时间的早晚进行排序。已经用了WHERE语句了 group by不知道如何写了,应该写在什么位置  请指教,多谢!

#3


实际我想达到的目的是显示A B C 3个表中的字段 
同时TRANSACTION_CODE='INVM-IN'AND   
    A.ORDER_NO=B.ORDER_NO   
在将DATE_APPLIED字段按照时间进行排序。

#4


我现在还要对DATE_APPLIED进行排序 
就ORDER BY DATE_APPLIED

#5


楼上说得是想排序用ORDER BY 字段名,group by 是分组

#6


是我没有说清楚 用group by对字段DATE_APPLIED 进行分组 
问题是select语句中
对TRANSACTION_CODE字段值等于INVM-IN  要用WHERE 
对DATE_APPLIED  用 group by 谁能写一下

select...from... where...group如何使用的问题。 
    

#7


select 分组字段列表,加上聚集函数(字段)比如COUNT(*)
WHERE 表达式
group by 分组字段列表
having 表达式;

前面选择的字段要么与DATE_APPLIED一起作为分组字段,要么都不要列出

#8


好像搂主都没有提到用什么样的聚集函数,假如只是想order by的话,都不需要group by的。

group by不是用来排序的。虽然有的版本有默认的排序作用。

难道LZ想要的,

Select A.DATE_APPLIED,聚集函数(A.OtherField),...
From INVENTORY_TRANSACTION_HIST2   A,PURCHASE_RECEIPT_NEW   B,INVENTORY_PART_TAB   C
Where A.TRANSACTION_CODE='INVM-IN' AND A.ORDER_NO=B.ORDER_NO   
Group By A.DATE_APPLIED
Order By A.DATE_APPLIED

怎么和C的连接关系都没有呢?赫赫。

#9


是不是没搞清楚是排序 order by 还是分组group by

#10


楼主 你上面的语句执行出来,是不是N多条记录呀,因为你的连接没有和C发生关系....^_^
---------------------
如果是order by (排序) 这个很简单 在你的语句末尾加上 Order   By   A.DATE_APPLIED 
如果要group by (分组) 你这样的写法似乎不对,group by 是对你提取的所有字段都要跟在其后面,否则会报错 ^_^