以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Select 语句  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140004)

--  作者:cd_tdh
--  发布时间:2019/8/27 14:39:00
--  Select 语句
老师,下面这个语句,我需要增加一个条件,[经营状态]=\'正常\' ,加到哪儿呢?
Sel  ect  {分支机构管理}.所属机构,经营状态,中标金额,中标日期,项目名称 From{分支机构管理}  Left JOIN (sel  ect * from {中标统计}  where [中标日期] > 2019-01-01) a ON a.[所属机构] = {分支机构管理}.[所属机构]

--  作者:有点蓝
--  发布时间:2019/8/27 14:47:00
--  
Sel  ect  {分支机构管理}.所属机构,经营状态,中标金额,中标日期,项目名称 From{分支机构管理}  Left JOIN (sel  ect * from {中标统计}  where [中标日期] > 2019-01-01) as a ON a.[所属机构] = {分支机构管理}.[所属机构] were [经营状态]=\'正常\'
--  作者:cd_tdh
--  发布时间:2019/8/27 14:55:00
--  
老师,这样出来生存的柱状图机构名称哪儿有重叠,先判断{分支机构管理}的经营状态怎么修改呢?
--  作者:有点蓝
--  发布时间:2019/8/27 15:01:00
--  
和这个sql没有什么关系吧?截图并贴出完整代码说明
--  作者:cd_tdh
--  发布时间:2019/8/27 15:09:00
--  

投标统计里面统计了含经营状态到期的,但是中标统计里面只统计了经营状态正常的,生成的柱状图下面所属机构是模糊的

 投标统计:

代码如下:

    \'图表,本年中标情况

    Dim d1 As  Date = Date.today.year & "-" & 1 & "-" & 1  \'当年
    Dim cmd7 As New SQLCommand
    Dim dt7 As DataTable
    cmd7.CSel  ect {分支机构管理}.所属机构,经营状态,项目编码,项目名称,报名日期 From {分支机构管理} Left JOIN (se lect * from {报名登记表} where [报名日期] > \'" & d1 & "\') a ON a.[所属机构] = {分支机构管理}.[所属机构]" 
    dt7 = cmd7.ExecuteReader()
    Dim Chart  As WinForm.Chart  \'定义一个图表变量
    Dim Series As WinForm.ChartSeries \'定义一个图系变量
    Dim tbl As DataTable =  dt7 \'定义一个变量tbl引用数据表
    Dim lst As List(Of String) = tbl.GetValues("所属机构") \'获得产品名称集合
    Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
    Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形),不加这一句为折线图
    Chart.SeriesList.Clear() \'清除图表原来的图系
    Chart.AxisY.Text = "投标数量(个)"
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Length = lst.Count \'设置图系的长度
    For i As Integer =  0  To lst.Count -  1  \'指定每个数据点的位置
        Series.X(i) = i \'指定水平坐标
        Series.Y(i) = val(tbl.Compute("Count(项目编码)","[所属机构] = \'" & lst(i) & "\'"))  \'指定垂直坐标
        Chart.AxisX.SetValueLabel(i, lst(i))  \'指定字符表示
        Series.DataLabelText = "{#YVAL}"  \'显示Y轴的值
        Series.DataLabelCompass = LabelCompassEnum.North  \'标识的位置
    Next
    Chart.AxisX.AnnoRotation = - 45 \'X轴文字角度
    Chart.AxisX.AnnoWithLabels = True \'启用字符标示


图片点击可在新窗口打开查看此主题相关图片如下:投标统计.png
图片点击可在新窗口打开查看

 

中标统计:代码如下:

    Dim d1 As  Date = Date.today.year & "-" & 1 & "-" & 1  \'当年
    Dim cmd5 As New SQLCommand
    Dim dt5 As DataTable
    cmd5.CSele ct {分支机构管理}.所属机构,经营状态,中标金额,中标日期,项目名称 From{分支机构管理} Left JOIN (sel ect * from {中标统计}  where [中标日期] > \'" & d1 & "\') a ON a.[所属机构] = {分支机构管理}.[所属机构] where [经营状态]=\'正常\'"
    dt5 = cmd5.ExecuteReader()
    Dim Chart  As WinForm.Chart  \'定义一个图表变量
    Dim Series As WinForm.ChartSeries \'定义一个图系变量
    Dim tbl As DataTable =  dt5 \'定义一个变量tbl引用数据表
    Dim lst As List(Of String) = tbl.GetValues("所属机构") \'获得产品名称集合
    Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
    Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形),不加这一句为折线图
    Chart.SeriesList.Clear() \'清除图表原来的图系
    Chart.AxisY.Text = "中标金额(万元)"
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Length = lst.Count \'设置图系的长度
    For i As Integer =  0  To lst.Count -  1  \'指定每个数据点的位置
        Series.X(i) = i \'指定水平坐标
        Series.Y(i) = cint(val(tbl.Compute("Sum(中标金额)","[所属机构] = \'" & lst(i) & "\'")) / 10000) \'指定垂直坐标,cint(保留整数)
        Chart.AxisX.SetValueLabel(i, lst(i))  \'指定字符表示
        Series.DataLabelText = "{#YVAL}"  \'显示Y轴的值
        Series.DataLabelCompass = LabelCompassEnum.North  \'标识的位置
    Next
    Chart.AxisX.AnnoRotation = - 45 \'X轴文字角度
    Chart.AxisX.AnnoWithLabels = True \'启用字符标示


图片点击可在新窗口打开查看此主题相关图片如下:中标统计.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/8/27 15:13:38编辑过]

--  作者:有点蓝
--  发布时间:2019/8/27 15:13:00
--  
没看懂。下面所属机构是模糊的是神马意思
--  作者:cd_tdh
--  发布时间:2019/8/27 15:14:00
--  
以下是引用有点蓝在2019/8/27 15:13:00的发言:
没看懂。下面所属机构是模糊的是神马意思

看不清所属机构啊,

 

生成新的图系前也清除了原来图系,但就是有重影一样,比如中标统计最后一个机构应该是总公司,却有个内蒙古分公司重影在上面

[此贴子已经被作者于2019/8/27 15:18:36编辑过]

--  作者:有点蓝
--  发布时间:2019/8/27 15:24:00
--  
模糊的问题我看着还好,可以试试:Chart.VisualEffect = True

{分支机构管理} 有相同的机构名称?如果没有,这个条件的使用不会有问题的,有也是数据的问题。具体哪个数据有问题?

--  作者:cd_tdh
--  发布时间:2019/8/28 13:30:00
--  
老师还是第一个问题,如果所属机构有重复的只取一个,怎么写呢?

Sel ect {分支机构管理}.所属机构,经营状态,中标金额,中标日期,项目名称 From{分支机构管理} Left JOIN (sel ect * from {中标统计} where [中标日期] > 2019-01-01) a ON a.[所属机构] = {分支机构管理}.[所属机构]


找了一下帮助,这样吗?

Sel ect {分支机构管理}.DISTINCT 所属机构,经营状态,中标金额,中标日期,项目名称 From{分支机构管理} Left JOIN (sel ect * from {中标统计} where [中标日期] > 2019-01-01) a ON a.[所属机构] = {分支机构管理}.[所属机构]
[此贴子已经被作者于2019/8/28 13:57:28编辑过]

--  作者:有点蓝
--  发布时间:2019/8/28 14:55:00
--  
哪些列是哪个表的?区分一下,否则我也不知道怎么改,最好把数据截图看看