簡體   English   中英

獲取具有 1 個 id 和多個事務 id 的數據員工表

[英]fetch data employee table with 1 id and multiple transaction id

在交易表中,一名員工有多項交易。我想要 1 位特定員工的所有交易。但員工 ID 應該在列中打印一次。這里是格式

1.這里一名員工有多個交易id .id應該顯示1次並顯示所有交易

預期結果:員工詳細信息應顯示在一行中,但交易 ID 應顯示在多行中

錯誤 ID 重復 ID:

結果的圖像

復制自評論:

select 
  b.TransactionId,
  a.Name
from 
  TransactionRecharge b 
  left JOIN Customer a on a.Id=b.CustomerId 
where 
  b.CustomerId=101282

這不是一個好的做法,我很確定“我會因為幫助你而得到負面評價”,無論如何我只是按照你的要求做了。

下面使用ROW_NUMBER查詢將幫助您准確獲得所需內容。

CREATE TABLE #customer(Id INT PRIMARY KEY,Name VARCHAR(255))
CREATE TABLE #TransactionRecharge(TransactionId VARCHAR(255),CustomerId INT FOREIGN KEY REFERENCES #customer(id))

INSERT INTO #customer
VALUES (1,'Raj'),(2,'Bala'),(3,'Chandra')

INSERT INTO #TransactionRecharge
VALUES ('reansaction1',1),('reansaction2',1),
       ('reansaction3',1),('reansaction4',1),
       ('reansaction5',1),('reansaction6',1),
       ('reansaction7',1),('reansaction8',2)

SELECT  
    CASE 
        WHEN ROW_NUMBER() OVER ( PARTITION BY a.id ORDER BY b.TransactionId,a.Id) = '1' THEN CONVERT(VARCHAR,a.Id)
        ELSE ''
    END AS Customer,
    CASE
        WHEN ROW_NUMBER() OVER ( PARTITION BY a.id ORDER BY b.TransactionId,a.Id) = '1' THEN Name
        ELSE ''
    END AS Name,
    b.TransactionId  
FROM
    #TransactionRecharge b
LEFT JOIN 
    #customer a ON a.Id = b.CustomerId
WHERE 1 = 1
--AND   b.CustomerId = 1
DROP TABLE #customer
DROP TABLE #TransactionRecharge

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM