Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 1.59 KB  |  hits: 25  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. TSQL Update Query behaving unexpectedly
  2. Select *
  3. From
  4. (SELECT DISTINCT
  5.  ProductClass,SalProductClass.[Description],B.Branch,B.BranchDesc,B.Salesperson,B.Name,
  6.  CAST(0 AS FLOAT) AS Rate,'N' AS Split
  7. FROM (SELECT SalBranch.Branch,SalBranch.[Description] AS BranchDesc,A.Salesperson,A.Name
  8.       FROM (SELECT DISTINCT
  9.              Salesperson,Name
  10.             FROM SalSalesperson
  11.             ) A
  12.       CROSS JOIN SalBranch
  13.       ) B
  14. CROSS JOIN SalProductClass
  15. ) C
  16. Left Outer Join RateComm On
  17. RateComm.ProductClass = C.ProductClass and
  18. RateComm.Branch = C.Branch And RateComm.Salesperson = C.Salesperson
  19. Where RateComm.ProductClass is Null
  20.        
  21. UPDATE RateComm
  22. SET RateComm.ProductClass=C.ProductClass,RateComm.ProdClassDesc=C.ProdClassDesc,
  23. RateComm.Branch=C.Branch,RateComm.BranchDesc=C.BranchDesc,RateComm.Salesperson=C.Salesperson,
  24. RateComm.Name=C.Name,RateComm.Rate=C.Rate,RateComm.Split=C.Split
  25.     FROM (SELECT DISTINCT
  26.            ProductClass,SalProductClass.[Description] AS ProdClassDesc,B.Branch,B.BranchDesc,B.Salesperson,B.Name,
  27.            CAST(0 AS FLOAT) AS Rate,'N' AS Split
  28.           FROM (SELECT SalBranch.Branch,SalBranch.[Description] AS BranchDesc,A.Salesperson,A.Name
  29.                 FROM (SELECT DISTINCT
  30.                        Salesperson,Name
  31.                       FROM SalSalesperson
  32.                       ) A
  33.                 CROSS JOIN SalBranch
  34.                 ) B
  35.           CROSS JOIN SalProductClass
  36.           ) C
  37.     LEFT OUTER JOIN RateComm ON C.ProductClass=RateComm.ProductClass AND
  38.     C.Salesperson=RateComm.Salesperson AND C.Branch=RateComm.Branch
  39.     WHERE RateComm.ProductClass IS NULL