Как искать данные за месяц и год
Declare @year Varchar(100)=2018 Declare @month Varchar(100)=3 SELECT Shrimp_Name,Grades,Japan,EU,US FROM ( SELECT MSN.Shrimp_Name,TMG.ID,TMG.Grades,TMR.Region_Name,TSP.Price from Tbl_Shrimp_Price TSP inner join Tbl_Mast_Shrimp_Region TMR On TMR.ID=TSP.Region inner join Tbl_Mast_Shrimp_Grades TMG On TMG.ID=TSP.Grade inner join Tbl_Mast_Shrimp_Name MSN On MSN.ID=TSP.ShrimpType WHERE TSP.ShrimpType=1 and TSP.PeriodType=@PeriodType AND --PostMonth =cast('01-'+@year1 as Varchar(20)) year(PostMonth) = @year AND MONTH(PostMonth)=@month ) as s PIVOT ( SUM(Price) FOR [Region_Name] IN (Japan, EU, US) )AS pvt ORDER BY Shrimp_Name,Grades
SELECT Shrimp_Name,Grades,Japan,EU,US FROM ( SELECT MSN.Shrimp_Name,TMG.ID,TMG.Grades,TMR.Region_Name,TSP.Price from Tbl_Shrimp_Price TSP inner join Tbl_Mast_Shrimp_Region TMR On TMR.ID=TSP.Region inner join Tbl_Mast_Shrimp_Grades TMG On TMG.ID=TSP.Grade inner join Tbl_Mast_Shrimp_Name MSN On MSN.ID=TSP.ShrimpType WHERE TSP.ShrimpType=2 and TSP.PeriodType=@PeriodType AND --PostMonth = cast('01-'+@year1 as Varchar(20)) year(PostMonth) = @year AND MONTH(PostMonth)=@month ) as s PIVOT ( SUM(Price) FOR [Region_Name] IN (Japan, EU, US) )AS pvt ORDER BY Shrimp_Name,Grades
Что я уже пробовал:
выше мой запрос я хочу искать данные из месяца и года, но когда я ищу данные из этого запроса в местоположении @month Я ставлю день означает(@month=1), то этот запрос выбирает данные так, как искать данные из месяца и года, Пожалуйста, помогите мне-
PostMonth - это мое имя столбца и формат сохранения данных ниже-
01-03-2018
MadMyche
При публикации вопросов, связанных с БД, рекомендуется добавить, какой тип СУБД используется, а также схему таблицы.
При работе с датами и/или временем часто проще всего работать с типом данных DATE, а затем использовать INT для частей (год, месяц, день). Использование типа text (VARCHAR) и попытка сделать математику внутри него часто заканчиваются тем, что вы не собирались делать