Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MSSQL查询结果中的重复记录_Php_Sql Server - Fatal编程技术网

Php MSSQL查询结果中的重复记录

Php MSSQL查询结果中的重复记录,php,sql-server,Php,Sql Server,我与MSSQL集成了系统连接。系统根据寄售编号获取所有记录。寄售编号采用整数形式,如(12到15)数字。查询工作正常,但获取了与事务时间(DATETIME列名)相关的行中的重复结果“在原始中心处理”。下面是我的查询和屏幕截图 SELECT ct.transactionTime, st.TrackingStatus Event, ct.consignmentNumber, ct.currentLocation AS LOCATION, CON

我与MSSQL集成了系统连接。系统根据寄售编号获取所有记录。寄售编号采用整数形式,如(12到15)数字。查询工作正常,但获取了与事务时间(DATETIME列名)相关的行中的重复结果“在原始中心处理”。下面是我的查询和屏幕截图

SELECT ct.transactionTime,
       st.TrackingStatus Event,
       ct.consignmentNumber,
       ct.currentLocation AS LOCATION,
       CONVERT(NVARCHAR, c.bookingDate, 105) BookingDate,
       CASE
            WHEN ct.stateID = '18' THEN 'Consignment Arrived At ' + ct.currentLocation
                 + ' Main Office' +
                 ' on ' + CONVERT(NVARCHAR, transactionTime, 105)
            WHEN ct.stateID = '1' THEN ' Conginment has been Booked on ' +
                 CONVERT(NVARCHAR, c.bookingdate, 105)
                 + ' in ' + ct.currentLocation
            WHEN ct.stateID = '2' OR ct.stateID = '3' OR ct.stateID = '4' THEN
                 'Processing at Origin HUB'
            WHEN ct.stateID in ('5','6','7') THEN
                 'Reached at Destination HUB'
            WHEN ct.stateID = '8' THEN
                 'Shipment on route '
                 + CONVERT(NVARCHAR, transactionTime, 105)
                 + ' in ' + ct.currentLocation
            WHEN ct.stateID = '9' THEN
                 'Consignment has been MAWB - Manifested AWB Number: '
                 + ct.mawbnumber + ' on ' + CONVERT(NVARCHAR, transactionTime, 105)
                 + ' in ' + ct.currentLocation
            WHEN ct.stateID = '10' THEN (
                     SELECT 'Consignment has been "' + ct.reason
                        --
                        + ' '
                        + '" Received By "' + (
                            CASE
                                 WHEN rc.receivedBy IS NULL THEN ''
                                 ELSE rc.receivedBy
                            END
                        ) + '" Dated: ' + (
                            CASE
                                 WHEN ct.stateID = '10' THEN LEFT(rc.deliveryDate, 10)
                            END
                        ) + (
                            CASE
                                 WHEN rc.time IS NULL THEN ''
                                 ELSE RIGHT(rc.time, 8)
                            END
                        )
                        + '" '
                 FROM   runsheetconsignment rc
                 WHERE  ct.consignmentnumber = rc.consignmentnumber
                 AND ct.runsheetnumber = rc.runsheetnumber
             )
        WHEN ct.stateID = '15' THEN 'Consignment has been ' + ct.reason
             + ' ' + CONVERT(NVARCHAR, transactionTime, 105) +
             ' in ' + ct.currentLocation
   END Detail
    FROM Consignment_Tracking_View ct
    INNER JOIN Consignment c
        ON  ct.consignmentNumber = c.consignmentNumber
    INNER JOIN MNP_ConsginmentTrackingStatus st
        ON  ct.stateID = st.StatusID
    WHERE c.consignmentNumber = '591091000000051' and c.consignerAccountNo not in ('4B45','7240','4H86','4H87','4H88','4B87','7240','4B45','4H91','4H89','4H90','4F47')
    ORDER BY ct.transactionTime desc
请帮帮我


记录不重复,Datetime列具有不同的值,将该列数据按转换转换为仅日期:
cast(列为日期)
,然后如果需要,仅在select语句中应用distinct

要根据您的评论获取状态相关的单个记录,请按如下方式使用分区:

;WITH T AS
(
    SELECT [DateTime],
    [Status],
    Location,
    ROW_NUMBER() OVER (PARTITION BY [Status],Location ORDER BY Location) AS PartNo
    From TableName
)

SELECT
    *
FROM T WHERE PartNo=1

任何人的帮助都会非常有用。记录不会重复,Datetime列有不同的值。谢谢你的消息。我想显示“在始发中心处理”的单个记录。我该怎么办?你是说每个状态有一条记录?如果你看到图像中有3条记录“在Origin HUB处理”,我只想显示一条。CAST(列为日期)在列中显示为空白。你说的“T”是什么意思?我不明白这些疑问。能否请您澄清?根据您的要求,每一行的状态和位置。你可以通过上面的陈述来达到你的目的。我会照原样使用上面的陈述吗?用我的名字换个名字就行了。我已经从图像输出中给出了解决方案