Imports System.Data.SqlClient Imports System.Reflection Public Class FrmSPRAY Dim cmd As New SqlCommand Dim da As New SqlDataAdapter Dim dt As New DataTable Dim sql As String Private Sub FrmSPRAY_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim conn As New SqlConnection conn.ConnectionString = connstring conn.Open() cmd.Connection = conn Dim dt As New DataTable sql = "SELECT YEAR(DATE) AS 年,MONTH(DATE) AS 月,SUM(T_WEIGHT) AS 重量1,SUM(B_WEIGHT) AS 重量2,SUM(T2_WEIGHT) AS 重量3,SUM(B2_WEIGHT) AS 重量4,SUM(TOTAL) AS 合计,count(*) as 鼓数 FROM RT_RETAN_RECORD_D where date is not null GROUP BY YEAR(DATE),MONTH(DATE) ORDER BY YEAR(DATE),MONTH(DATE) DESC" sql = "SELECT YEAR(RT_Spray_daily.date) AS 年, MONTH(RT_Spray_daily.date) AS 月, RT_Spray_daily.card AS 卡号, RT_RETAN_RECORD.CUST AS 客户, RT_RETAN_RECORD.COLOR AS 颜色, RT_RETAN_RECORD.SOURCE AS 皮源," & " case when RT_RETAN_RECORD.TECH like N'%小刘%' then N'刘祥超' when RT_RETAN_RECORD.TECH like N'刘%' then N'刘祥超' else RT_RETAN_RECORD.TECH end AS 技术员,MAX(RT_Spray_daily.times) AS 喷皮次数, CASE WHEN P LIKE N'%王%' THEN '王' WHEN p LIKE N'%李%' THEN '李' WHEN p LIKE N'%颜%' THEN N'颜' ELSE '其他' END AS 喷台, RT_RETAN_RECORD.wb_weight as 心皮重 " & " FROM RT_Spray_daily LEFT OUTER JOIN " & " RT_RETAN_RECORD ON RT_Spray_daily.card = RT_RETAN_RECORD.CARD " & " GROUP BY YEAR(RT_Spray_daily.date), MONTH(RT_Spray_daily.date), RT_Spray_daily.card, RT_RETAN_RECORD.TECH, " & " RT_RETAN_RECORD.COLOR, RT_RETAN_RECORD.SOURCE, RT_RETAN_RECORD.CUST,p , RT_RETAN_RECORD.wb_weight " & " ORDER BY 年 DESC, 月 DESC" cmd.CommandText = sql da.SelectCommand = cmd da.Fill(dt) DGV_SPRAY.DataSource = dt DGV_SPRAY.Columns(0).Width = 60 DGV_SPRAY.Columns(1).Width = 60 DGV_SPRAY.Columns(2).Width = 140 DGV_SPRAY.Columns(3).Width = 90 DGV_SPRAY.Columns(4).Width = 100 DGV_SPRAY.Columns(5).Width = 80 DGV_SPRAY.Columns(6).Width = 80 DGV_SPRAY.Columns(7).Width = 60 DGV_SPRAY.Columns(8).Width = 80 Dim DT1 As New DataTable sql = "SELECT Expr1 AS 年, Expr2 AS 月, SUM(Expr3) AS 次数, COUNT(*) AS 鼓数, CAST(SUM(Expr3)/COUNT(*) AS NUMERIC(10,2)) AS 平均每鼓 " & " FROM (SELECT YEAR(date) AS Expr1, MONTH(date) AS Expr2, card, MAX(times) AS Expr3 " & " FROM RT_Spray_daily " & " GROUP BY YEAR(date), MONTH(date), card) AS p " & " GROUP BY Expr1, Expr2 order by expr1 desc, expr2 desc" cmd.CommandText = sql da.SelectCommand = cmd da.Fill(DT1) DGV_SUM.DataSource = DT1 DGV_SUM.Columns(0).Width = 60 DGV_SUM.Columns(1).Width = 60 DGV_SUM.Columns(2).Width = 60 DGV_SUM.Columns(3).Width = 60 DGV_SUM.Columns(4).Width = 80 End Sub End Class