小编MrM*_*Mee的帖子

我需要了解以下MS SQL语句(SELECT FROM VALUES)

我对MS SQL还是很陌生,但是现在我不得不做很多工作。我需要了解这里发生的情况:

    BEGIN TRANSACTION loadHalfdayAbsences;
    INSERT INTO @halfDayAbsences
    ([AbsencePart], 
     [AbsenceId], 
     [DeleteDate], 
     [LastChangeDate]
    )
           SELECT CASE ap.AbsencePart
                      WHEN 1
                      THEN a.AbsenceStart
                      WHEN 3
                      THEN a.AbsenceEnd
                      ELSE CASE
                               WHEN a.AbsenceStartHalfDay = 1
                               THEN DATEADD(DAY, 1, a.AbsenceStart)
                               ELSE a.AbsenceStart
                           END
                  END AS newEnd,
                  CASE ap.AbsencePart
                      WHEN 1
                      THEN 0.50
                      WHEN 2
                      THEN 1.00
                      WHEN 3
                      THEN 0.50
                  END AS newDuration, 
                  [ap].[AbsencePart], 
                  [a].[AbsenceId], 
                  [a].[EmployeeId], 
           FROM
           (
               SELECT AbsencePart
               FROM(VALUES(1), (2), (3)) AS t(AbsencePart)
           ) AS ap
           INNER JOIN dwh.Absence AS a ON 1 = …
Run Code Online (Sandbox Code Playgroud)

sql-server

4
推荐指数
1
解决办法
44
查看次数

SQL Server:OPENQUERY 用简单的话(举例)

我是 SQL Server 的新手,我在这里偶然发现了这一点:

BEGIN TRANSACTION loadTTAllocations

    INSERT INTO @ttaAllocs
        SELECT 
            company_code AS CompanyId,
            job_number AS JobNo,
            ...
            is_blocked AS IsBlocked
        FROM 
            OPENQUERY([SRV_TimeTac], 
                       'SELECT DISTINCT 
                            job.individual_value_1 AS job_number,
                            job.individual_value_3 AS company_code,
                            ...
                            now() AS queryTimeStamp
                        FROM 
                            pm_altran.pm_tasks_subprojects AS taskCode
                        INNER JOIN 
                            pm_altran.pm_tasks_subprojects AS job
                                 ON job.id = taskCode.mother_id 
                                 AND job.is_done = 0
                                 AND NOT job.is_blocked
                        INNER JOIN 
                            pm_node_to_user AS n2u
                                 ON n2u.node_id = taskCode.id
                                 AND n2u.access = 1
                                 AND n2u.is_todo = 1
                        LEFT JOIN 
                            altran_pm_user_user_settings AS u
                                 ON u.administrators_id = …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server openquery

4
推荐指数
1
解决办法
2792
查看次数

标签 统计

sql-server ×2

openquery ×1

t-sql ×1