2017-08-16 35 views
-3

我有我如何根據他們在asp.net mvc的出生月份

NAME  GENDER  DOB   
swarna  Female  12-06-1991 
dayakar  male  12-06-1984 
monish  Male  01-06-1994 
er   Female  16-03-1995 
sd   Male  19-08-2005 

我想與上述信息像 明智顯示柱狀圖在一個月如何表計數男性和女性的數量許多女性和男性是否有 [1這樣我想輸出]

對於i已經寫代碼作爲asp.net的MVC如下

變種DATA1 = db.Student.GroupBy(C =>新的{米= c.Gender})。選擇(c => new BarChartViewmodel2 {
})。ToList(); 請指引我 謝謝

+0

您是否有真正的問題? – Strawberry

+0

從table_name組中按月(dob),性別選擇count(*); – tibetty

+0

我這樣做在asp.net mvc .pls解釋我在那 – Hitha

回答

0

你應該做這樣的事情

select name, COUNT(*)as tot, 
    COUNT(case when details.gender='male' then 1 end) as male, 
    COUNT(case when details.gender='female' then 1 end) as female 
    from YourTable where DOB='Date' 
1

google.charts.load('current', {'packages':['bar']}); 
 
     google.charts.setOnLoadCallback(drawChart); 
 

 
     function drawChart() { 
 
     var data = google.visualization.arrayToDataTable([ 
 
      ['Month', 'Male', 'Female'], 
 
      ['2014', 1000, 400], 
 
      ['2015', 1170, 460], 
 
      ['2016', 660, 1120], 
 
      ['2017', 1030, 540] 
 
     ]); 
 

 
     var options = { 
 
      chart: { 
 
      title: 'Birth Count', 
 
      subtitle: 'Birth Count', 
 
      } 
 
     }; 
 

 
     var chart = new google.charts.Bar(document.getElementById('columnchart_material')); 
 

 
     chart.draw(data, google.charts.Bar.convertOptions(options)); 
 
     }
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="columnchart_material" style="width: 800px; height: 500px;"></div>

DECLARE @Dobs TABLE(
    Name VARCHAR(50), 
    Gender VARCHAR(10), 
    DateOfBirth DATETIME 
) 

INSERT INTO @Dobs(Name, Gender, DateOfBirth) 
VALUES ('swarna', 'Female', '1991-06-12'), 
('dayakar', 'male', '1984-06-12'), 
('monish', 'Male', '1994-06-01'), 
('newmen', 'Male', '1994-06-01'), 
('er', 'Female', '1995-03-16'), 
('sd', 'Male', '2005-08-19') 

SELECT MonthValue, MonthName, SUM(MaleCount) AS MaleCount, SUM(FemaleCount) AS FemaleCount 
FROM(
    SELECT Gender 
     , MONTH(DateOfBirth) as MonthValue 
     , DateName(mm,DATEADD(mm, MONTH(DateOfBirth) - 1,0)) MonthName 
     , (CASE WHEN Gender = 'Male' THEN 1 ELSE 0 END) AS MaleCount 
     , (CASE WHEN Gender = 'FeMale' THEN 1 ELSE 0 END) AS FemaleCount 
    FROM @Dobs 
) as tbl 
GROUP BY MonthValue, MonthName 

這是MSSQL。

在MySQL中,像

SELECT MonthName, SUM(MaleCount) AS MaleCount, SUM(FemaleCount) AS FemaleCount 
FROM(
    SELECT Gender 
     , MONTHNAME(DateOfBirth) AS MonthName 
     , (CASE WHEN Gender = 'Male' THEN 1 ELSE 0 END) AS MaleCount 
     , (CASE WHEN Gender = 'FeMale' THEN 1 ELSE 0 END) AS FemaleCount 
    FROM @Dobs 
) as tbl 
GROUP BY MonthName 

輸出將是這樣的:

MonthName MaleCount FemaleCount 
------------------------------------------- 
August 1 0 
June 0 1 
June 3 0 
March 0 1 

所以你會得到男性&女性的誕生計數從您的查詢本身所有可用的月份。您需要將其設置爲您的模型並使用縮進。

+0

請在asp.net中解釋mvc – Hitha

+0

您可以使用Google Charts'https://developers.google.com/chart/interactive/docs/gallery/columnchart'的'創建材料柱形圖'來獲得條形圖功能 – gjijo

+0

您需要用您從查詢中獲得的新值更改drawChart()方法中指定的'data'的值。無論是通過ajax,還是通過您的stringyfied模型和json manupilation來完成。 – gjijo

相關問題