Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Uso de TREATAS para unir 2 tablas

Estoy tratando de combinar dos tablas que son el equivalente SQL de

SELECT s.StudentId,
s.[School Year],
s.School,
a.Date,
a.[Expected Amount],
a.[Present Amount]
FROM PowerBIActiveAndInactiveStudentsWithLastSchool_2Yrs s
INNER JOIN PowerBIStudentAttendanceByDay_2Yrs a ON s.StudentId = a.StudentId AND s.Key_Year = a.Key_Year AND s.School = a.School
WHERE s.IsActive = 1

Lo intenté

NewTable = 
VAR FilteredStudents =
    FILTER(
        'PowerBI ActiveAndInactiveStudentsWithLastSchool_2Yrs',
        [IsActive] = 1
    )
RETURN
    SELECTCOLUMNS(
        NATURALINNERJOIN(
            FilteredStudents,
            'PowerBI StudentAttendanceByDay_2Yrs'
        ),
        "StudentId", 'PowerBI StudentAttendanceByDay_2Yrs'[StudentId],
        "School Year", 'PowerBI StudentAttendanceByDay_2Yrs'[School Year],
        "School", 'PowerBI StudentAttendanceByDay_2Yrs'[School],
        "Date", 'PowerBI StudentAttendanceByDay_2Yrs'[Date],
        "Expected Amount", 'PowerBI StudentAttendanceByDay_2Yrs'[Expected Amount],
        "Present Amount", 'PowerBI StudentAttendanceByDay_2Yrs'[Present Amount]
    )

pero eso generó el error "No se detectaron columnas de combinación comunes. La función de combinación NATURALINNERJOIN requiere al menos una columna de combinación común". Tengo una relación muchos:muchos entre las dos tablas basada en la identificación del estudiante.

Leí que debería usar TREATAS para crear relaciones virtuales, pero no sé cómo hacer que funcione.

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Hola @Kimber,

Based on my tests, TREATAS cannot directly reference the FilteredStudents variable.

Pruebe la siguiente solución alternativa:

NewTable2 = 
VAR FilteredStudents =
    SELECTCOLUMNS(
        FILTER(
            'PowerBI ActiveAndInactiveStudentsWithLastSchool_2Yrs',
            [IsActive] = 1
        ),
        "StudentId", [StudentId],
        "Key_Year", [Key_Year],
        "School", [School]
    )
RETURN
DISTINCT(
    SELECTCOLUMNS(
        FILTER(
            'PowerBI StudentAttendanceByDay_2Yrs',
            'PowerBI StudentAttendanceByDay_2Yrs'[StudentId] IN DISTINCT(SELECTCOLUMNS(FilteredStudents, "StudentId", [StudentId]))
            &&
            'PowerBI StudentAttendanceByDay_2Yrs'[Key_Year] IN DISTINCT(SELECTCOLUMNS(FilteredStudents, "Key_Year", [Key_Year]))
            &&
            'PowerBI StudentAttendanceByDay_2Yrs'[School] IN DISTINCT(SELECTCOLUMNS(FilteredStudents, "School", [School]))
        ),
        "StudentId", 'PowerBI StudentAttendanceByDay_2Yrs'[StudentId],
        "School Year", 'PowerBI StudentAttendanceByDay_2Yrs'[School Year],
        "School", 'PowerBI StudentAttendanceByDay_2Yrs'[School],
        "Date", 'PowerBI StudentAttendanceByDay_2Yrs'[Date],
        "Expected Amount", 'PowerBI StudentAttendanceByDay_2Yrs'[Expected Amount],
        "Present Amount", 'PowerBI StudentAttendanceByDay_2Yrs'[Present Amount]
    ))

Para obtener información más detallada, consulte el archivo adjunto.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors