0

我尝试通过对其他列进行分组来生成一个新列,并且下面的代码有效。

 CASE 
     WHEN familyGroupPOSRef = 955 
       THEN MAX(RVCPOSId) OVER (PARTITION BY organizationID, Location_Code, transactionID) 
       ELSE -1 
 END AS toEntity

有没有办法通过使用字符串列来运行此代码?使用LocationName代替RVCPOSId之前的OVER语句。

CASE 
    WHEN familyGroupPOSRef = 955 
      THEN LocationName OVER (PARTITION BY organizationID, Location_Code, transactionID) 
      ELSE 'nothing' 
END AS toEntity

到目前为止,我在网上找不到任何东西。它不必是这种方法。我需要在单独的列中对 955进行分组organizationID, Location_Code, transactionID和显示。locationName

现在怎么样了:

 organizationID   Code   transactionID   FGName         itemName
    10000         955    123456          Location       Liv Retail
    10000         103    123456          Internal Item  Chocolate Milkshake
    10000         103    123456          Internal Item  Strawberry Milk
    10000         103    123456          Internal Item  Milk

我希望它如何

organizationID   Code   transactionID   FGName         toEntity    itemName
10000            955    123456          Location       Liv Retail  Liv Retail
10000            103    123456          Internal Item  Liv Retail  Chocolate Milkshake
10000            103    123456          Internal Item  Liv Retail  Strawberry Milk
10000            103    123456          Internal Item  Liv Retail  Milk

一个事务可以有多个 menuItems,并且它总是有 1 个位置记录,就像一个 menuItem 一样保存。这是一个技巧。我喜欢创建一个新列来应用位置名称,即在提供的示例数据中的 toEntity 下的 Liv Retail。

如果我追求不可能的事情,请告诉我。然后我将分解 stmt 并使用 join 连接表。

提前致谢。

4

1 回答 1

0

您可以使用简单的子查询来执行此操作

CREATE TABLE Table1
([organizationID] int, 
 [Code] int, 
 [transactionID] int, 
 [FGName] varchar(13), 
 [itemName] varchar(19));

 INSERT INTO Table1
([organizationID],
 [Code], 
 [transactionID], 
 [FGName], 
 [itemName])
 VALUES
(10000, 955, 123456, 'Location', 'Liv Retail'),
(10000, 103, 123456, 'Internal Item', 'Chocolate Milkshake'),
(10000, 103, 123456, 'Internal Item', 'Strawberry Milk'),
(10000, 103, 123456, 'Internal Item', 'Milk');

select *,toEntity=(SELECT ITEMNAME FRom TAble1 Ti 
            where ti.TRANSACTIONID=T.TRANSACTIONID and Ti.FGNAME='Location' )
     from Table1 T  
于 2014-02-26T05:55:08.710 回答