Hamid Jalil Ответов: 2

Мне нужен SQL-запрос для настольного приложения C# для расчета ежедневной продажи текущего месяца или группы по месяцам


I have Table  Daily_Sale Sample is given 
<pre>     Date_Time             Sale      Cost     Profit     Margin

Friday, June 29, 2018	   33945     20000	  13945	    41.081
Monday, April 16, 2018	   63303     43000	  20303	    32.072
Saturday, April 14, 2018   104534    74000	  30534	    29.209
Sunday, April 15, 2018	   9800      70000	  28000	    28.571
Thursday, June 28, 2018	   27156     16000	  11156	    41.081
Tuesday, May 1, 2018	   17034     12000	  5034	    29.552
Wednesday, May 2, 2018	   19753     12000	  7752	    39.246

Я хочу рассчитать продажи по месяцам.На самом деле я хочу показать продажу,себестоимость прибыли и маржу в datagridview и графике текущего месяца.

Пожалуйста, помогите мне

Что я уже пробовал:

Я пытаюсь
cmd = new SqlCommand("Select * from Daily_Sale ", con);

    adapt = new SqlDataAdapter();
    adapt.SelectCommand = cmd;
    dt = new DataTable();
    adapt.Fill(dt);
    bsource = new BindingSource();
    bsource.DataSource = dt;
    dataGridView1.DataSource = bsource;

    chart1.Series["Sale"].XValueMember = "Total_Sale";
    chart1.Series["Sale"].YValueMembers = "Total_Sale";
    chart1.Series["Profit"].XValueMember = "Total_Profit";
    chart1.Series["Profit"].YValueMembers = "Total_sale";
    chart1.Series["Margin"].XValueMember = "Margin";
    chart1.Series["Margin"].YValueMembers = "Total_sale";
    chart1.DataSource = hJSportsDataSet8.Daily_Sale;
    chart1.DataBind();


    cmd = con.CreateCommand();
    cmd.CommandText = "Select * from Daily_Sale ";
    SqlDataReader reader;
    reader = cmd.ExecuteReader();
    while (reader.Read())
    {

        chart1.Series["Sale"].XValueMember = "Date_Time";
        chart1.Series["Sale"].YValueMembers = "Total_Sale";
        chart1.Series["Profit"].XValueMember = "Date_Time";
        chart1.Series["Profit"].YValueMembers = "Total_Profit";
        chart1.Series["Margin"].XValueMember = "Date_Time";
        chart1.Series["Margin"].YValueMembers = "Margin";
    }

Но я уверен, что это показывает полностью табличные данные.

2 Ответов

Рейтинг:
6

Hamid Jalil

После многих попыток различных запросов я получил его . все очень просто

cmd = new SqlCommand("Select * from Daily_Sale Where Month(Date_Time)=Month( 
getDate() ) ", con);

На самом деле я меняю свой формат Date_Time в базе данных SQL с varchar на DateTime и понимаю, как Новичок, что лучше всего сохранять дату и время в формате datetime, а не символ или строку, чтобы избежать дальнейших проблем. поэтому перед тем, как вставить в ежедневную продажу, я просто написал этот код.
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yyyy/MM/dd";

cmd_dily_sale = new SqlCommand("insert into Daily_Sale(Date_Time,Total_Sale,Total_Cost,Total_Profit,Margin)values(@Date_Time,@Total_Sale,@Total_Cost,@Total_Profit,@Margin)", con);
                cmd_dily_sale.Parameters.AddWithValue("@Date_Time",dateTimePicker1.Text);
cmd_dily_sale.Parameters.AddWithValue("@Total_Sale", sale);
cmd_dily_sale.Parameters.AddWithValue("@Total_Cost", total_cost);
cmd_dily_sale.Parameters.AddWithValue("@Total_Profit", profit);
cmd_dily_sale.Parameters.AddWithValue("@Margin", margin);
cmd_dily_sale.ExecuteNonQuery();


Рейтинг:
2

OriginalGriff

Попробуй:

SELECT  Date_Time = DATEADD(MONTH, DATEDIFF(MONTH, 0, Date_Time), 0), 
        SUM(Sale) AS Sales,
        SUM(Cost) AS Costs,
        SUM(Profit) AS Profits,
        SUM(Margin) AS Margins
FROM    Daily_Sale
GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, Date_Time), 0);


Hamid Jalil

нет, это не работает... ни ошибка, ни исключение не возникают и не дают сообщения
КМД = новая команда sqlcommand("выберите Дата_время = функция dateadd(месяц, функция datediff(месяц, 0, Дата_время), 0), сумма(Total_Sale) как продажи,сумма(Total_Cost) как стоимость,сумма(Total_Profit) как прибыль,сумма(наценки) в пределах от Daily_Sale группа по функция dateadd(месяц, функция datediff(месяц, 0, Дата_время), 0)", кон);

УМК.Метод executenonquery();
Ящик для сообщений.Шоу("Ары работать ");

OriginalGriff

Вы понимаете, что делает ExecuteNonQuery?
Подсказка: подумайте о "не" части ...