es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Elimine el mes y el año de esta tabla y úsela como tabla de referencia para encontrar datos basados ​​en el mes, el trimestre o el año.

Tengo esta tabla que tiene las siguientes columnas:

Country_id
Country_name
Locality_id
Locality_Name
Market_id
Market_name
Commodity_id
Commodity_name
Currency_id
Currency_name
Market_type_id
Market_type
Month
Year
Price

Quiero eliminar Month y Year de esta tabla principal y crear otra tabla para que pueda usar la otra tabla como referencia en esta tabla.

Por lo que hay dos tablas: Table_1-
none
Country_id
Country_name
Locality_id
Locality_Name
Market_id
Market_name
Commodity_id
Commodity_name
Currency_id
Currency_name
Market_type_id
Market_type
Price
Table 2:
none
Month
year

Me gustaría crear una jerarquía como:

Mes -> Trimestre -> Año

Para poder hacer un informe SSRS en el que pueda hacer un informe basado en mes, trimestre, año. Aquí está la captura de pantalla de la tabla:

El problema es que no puedo pensar en una manera de lograr esto.

Conjunto de datos de ejemplo:
estos son los nombres de columna separados por comas
Countryid ,Countryname, Localityid, LocalityName, Marketid,Marketname, Commodityid, Commodityname, Currencyid, Currencyname, Markettypeid Market_type, Month, Year, Price

Y a continuación se muestra datos separados por comas

none
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,1,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,2,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,3,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,4,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,5,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,6,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,7,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,8,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,9,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,10,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,11,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,12,2014,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,1,2015,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,2,2015,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,3,2015,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,6,2015,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,7,2015,50
1,Afganistán,272,Badakhshan,266,Fayzabad,55,Pan _ Retail,0,AFN,15,Al por menor,8,2015,50

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para eliminar Mes y Año de la tabla principal y crear otra tabla para ellos, siga estos pasos:

    1. Cree una nueva tabla Tabla_2, con columnas Mes y Año.
    2. Copie los valores distintos de Mes y Año de Tabla_1 a Tabla_2.
    3. Elimine las columnas Mes y Año de Tabla_1.
    4. Agregue una nueva columna Fecha a Tabla_1 con tipo de dato date.
    5. Rellene la columna Fecha en Tabla_1 convirtiendo las columnas Mes y Año al tipo de dato date, utilizando un script SQL. Por ejemplo:
    ACTUALIZAR Tabla_1
    ESTABLECER Fecha = CAST (CAST(Año AS VARCHAR (4)) + '-' + CAST(Mes AS VARCHAR (2)) + '-01' AS DATE)
    

    Este script convierte las columnas Mes y Año en un formato de fecha como 2014-01-01. El día se establece en el primer día del mes porque solo tenemos datos mensuales.
    6. Ahora puede unir Tabla_1 y Tabla_2 en las columnas Mes y Año para recuperar el Precio por mes o por año, según sea necesario.
    7. También puede crear una columna calculada para el trimestre en Tabla_2 utilizando un script SQL. Por ejemplo:

    ALTER TABLE Tabla_2 Añadir Trimestre INT
    
    ACTUALIZAR Tabla_2
    ESTABLECER Trimestre = DATEPART (TRIMESTRE, CAST (CAST(Año AS VARCHAR (4)) + '-' + CAST(Mes AS VARCHAR (2)) + '-01' AS DATE))
    

    Este script agrega una nueva columna Trimestre a Tabla_2 y la rellena utilizando la función DATEPART para extraer el trimestre de la columna Fecha.

    Ahora puede usar estas tablas para crear un informe SSRS donde puede filtrar datos por mes, trimestre o año. Por ejemplo, para agrupar datos por trimestre, puede usar la columna Trimestre de Tabla_2 y la función SUM para agregar el Precio en Tabla_1.

Comments are closed.