Visifireを使用してグラフ化されたデータを表示するプロジェクトを実行しようとしています。単一のDataTableを取り込みます。特定の月の日付列を検索するSQLクエリを作成する必要があります(形式は:2017年11月3日金曜日)。その後、その月が何回繰り返されたかを格納します。これは12ヶ月間すべてこれを行う必要があります。これはVisual StudioのC#で行われます。現在、折れ線グラフ上にデータは表示されません。SQL Server:異なる月の出現を検索
public DataTable ReadDataMonthlyBooked()
{
// Declare references (for table, reader and command)
DataTable monthlyBookedTable = new DataTable();
SqlDataReader reader;
SqlCommand command;
string selectString = "SELECT COUNT (BookingNum) AS Bookings "
+ "FROM Booking "
+ "WHERE Booking.EndDate LIKE 'January' "
+ "AND Booking.EndDate LIKE 'February' "
+ "AND Booking.EndDate LIKE 'March' "
+ "AND Booking.EndDate LIKE 'April' "
+ "AND Booking.EndDate LIKE 'May' "
+ "AND Booking.EndDate LIKE 'June' "
+ "AND Booking.EndDate LIKE 'July' "
+ "AND Booking.EndDate LIKE 'August' "
+ "AND Booking.EndDate LIKE 'September' "
+ "AND Booking.EndDate LIKE 'October' "
+ "AND Booking.EndDate LIKE 'November' "
+ "AND Booking.EndDate LIKE 'December'";
try
{
// Create a new command
command = new SqlCommand(selectString, cnMain);
// open the connection
cnMain.Open();
command.CommandType = CommandType.Text;
reader = command.ExecuteReader();
// read data from readerObject and load in table
monthlyBookedTable.Load(reader);
reader.Close(); //close the reader
cnMain.Close(); //close the connection
return monthlyBookedTable;
}
catch (Exception ex)
{
return (null);
}
}
これは現在のSQLクエリですが、ロジックエラーで間違っていることを願っていますが、SQLはよく分かりません。
あなたが12月に2回ある以外は、予約とは何ですか?もしそれが日付の場合は、その1/1/2018を格納する場合は?あなたの日付のどれもプラスしていますが、それがうまくいけば12ヶ月間リストされているので、毎月ではなくすべてのものをカウントします。 – BugFinder
日付であればそれは保存されません2010年1月1日(または1月1日、2018年1月1日)または他の文字列形式 - それを日付として格納し、コードはそれを日付として処理する必要があります。 –
申し訳ありませんが、最初の12月は1月を意味します。 Booking.Enddateは、(名前が示すように) 'Booking.Enddate'が実際には - 次に***なぜ***をあなたのように保存しているのでしょうか?(2017年11月3日金曜日) –