ÓÐʱ£¬ÎªÁËÈÃÓ¦ÓóÌÐòÔËÐеøü¿ì£¬Ëù×öµÄÈ«²¿¹¤×÷¾ÍÊÇÔÚÕâÀï»òÄÇÀï×öһЩºÜСµ÷Õû¡£µ«¹Ø¼üÔÚÓÚÈ·¶¨ÈçºÎ½øÐе÷Õû!³ÙÔçÄú»áÓöµ½ÕâÖÖÇé¿ö£ºÓ¦ÓóÌÐòÖÐµÄ SQL ²éѯ²»Äܰ´ÕÕÄúÏëÒªµÄ·½Ê½½øÐÐÏìÓ¦¡£ËüҪô²»·µ»ØÊý¾Ý£¬ÒªÃ´ºÄ·ÑµÄʱ¼ä³¤µÃ³öÆæ¡£Èç¹ûËü½µµÍÁËÆóÒµÓ¦ÓóÌÐòµÄËÙ¶È£¬Óû§±ØÐëµÈ´ýºÜ³¤Ê±¼ä¡£Óû§Ï£ÍûÓ¦ÓóÌÐòÏìӦѸËÙ£¬ËûÃǵı¨¸æÄܹ»ÔÚ˲¼äÖ®ÄÚ·µ»Ø·ÖÎöÊý¾Ý¡£¾ÍÎÒ×Ô¼º¶øÑÔ£¬Èç¹ûÔÚWebÉϳåÀËʱij¸öÒ³ÃæÒªºÄ·ÑÊ®¶àÃë²ÅÄܼÓÔØ£¬ÎÒÒ²»áºÜ²»ÄÍ·³¡£ 8.lc4B:?€.@ GHzPE(77+nBz ¡¡¡¡ÎªÁ˽â¾öÕâЩÎÊÌâ£¬ÖØÒªµÄÊÇÕÒµ½ÎÊÌâµÄ¸ùÔ´¡£ÄÇô£¬´ÓÄÄÀï¿ªÊ¼ÄØ?¸ù±¾ÔÒòͨ³£ÔÚÓÚÊý¾Ý¿âÉè¼ÆºÍ·ÃÎÊËüµÄ²éѯ¡£ÎÒ½«½²ÊöËÄÏî¼¼Êõ£¬ÕâЩ¼¼Êõ¿ÉÓÃÓÚÌá¸ß»ùÓÚSQL ServerµÄÓ¦ÓóÌÐòµÄÐÔÄÜ»ò¸ÄÉÆÆä¿ÉÉìËõÐÔ¡£ÎÒ½«×Ðϸ˵Ã÷ LEFT JOIN¡¢CROSS JOIN µÄʹÓÃÒÔ¼°IDENTITY ÖµµÄ¼ìË÷¡£Çë¼Çס£¬¸ù±¾Ã»ÓÐÉñÆæµÄ½â¾ö·½°¸¡£µ÷ÕûÄúµÄÊý¾Ý¿â¼°Æä²éѯÐèÒªÕ¼ÓÃʱ¼ä¡¢½øÐзÖÎö£¬»¹ÐèÒª´óÁ¿µÄ²âÊÔ¡£ÕâЩ¼¼Êõ¶¼Òѱ»Ö¤Ã÷ÐÐÖ®ÓÐЧ£¬µ«¶ÔÄúµÄÓ¦ÓóÌÐò¶øÑÔ£¬¿ÉÄÜÆäÖÐһЩ¼¼Êõ±ÈÁíһЩ¼¼Êõ¸üÊÊÓᣠG,,X(45}!6q^Ph 4/ AZ[.iv
(k=kg|?3 ¡¡¡¡´Ó INSERT ·µ»Ø IDENTITY qnkOk6wSRs&cddi; v(~p8-GO.Pjfm` ? ¡¡¡¡ÎÒ¾ö¶¨´ÓÓöµ½Ðí¶àÎÊÌâµÄÄÚÈÝÈëÊÖ£ºÈçºÎÔÚÖ´ÐÐSQL INSERTºó¼ìË÷IDENTITYÖµ¡£Í¨³££¬ÎÊÌâ²»ÔÚÓÚÈçºÎ±àд¼ìË÷ÖµµÄ²éѯ£¬¶øÔÚÓÚÔÚÄÄÀïÒÔ¼°ºÎʱ½øÐмìË÷¡£ÔÚSQL ServerÖУ¬ÏÂÃæµÄÓï¾ä¿ÉÓÃÓÚ¼ìË÷ÓÉ×îÐÂÔڻÊý¾Ý¿âÁ¬½ÓÉÏÔËÐÐµÄ SQL Óï¾äËù´´½¨µÄ IDENTITY Öµ£º \=
~^dB\hP(ExW
M`Eo ?b]q|€z/3y*sH`+ ¡¡¡¡SELECT @@IDENTITY #xt`EN^HrD!O ]Q|bt8YN#^ttdEa 9Ty"aoY|*4Q\J*G ¡¡¡¡Õâ¸ö SQL Óï¾ä²¢²»¸´ÔÓ£¬µ«ÐèÒª¼ÇסµÄÒ»µãÊÇ£ºÈç¹ûÕâ¸ö×îÐ嵀 SQL Óï¾ä²»ÊÇ INSERT£¬»òÕßÄúÕë¶Ô·Ç INSERT SQL µÄÆäËûÁ¬½ÓÔËÐÐÁË´Ë SQL£¬Ôò²»»á»ñµÃÆÚÍûµÄÖµ¡£Äú±ØÐëÔËÐÐÏÂÁдúÂë²ÅÄܼìË÷½ô¸úÔÚ INSERT SQL Ö®ºóÇÒλÓÚͬһÁ¬½ÓÉ쵀 IDENTITY£¬ÈçÏÂËùʾ£º h_-DX:
:~H0€ bJLMliBpHsN€ 9= ¡¡¡¡INSERT INTO Products (ProductName) VALUES ('Chalk') #f='X#]Zv%j"~d=)2 ¡¡¡¡SELECT @@IDENTITY 2Kn]`
O,*-E9e^xN :*W}k€d)(~5K.wd ¡¡¡¡ÔÚÒ»¸öÁ¬½ÓÉÏÕë¶Ô Northwind Êý¾Ý¿âÔËÐÐÕâЩ²éѯ½«·µ»ØÒ»¸öÃû³ÆÎª Chalk µÄвúÆ·µÄ IDENTITY Öµ¡£ËùÒÔ£¬ÔÚʹÓÃADOVisual BasicÓ¦ÓóÌÐòÖУ¬¿ÉÒÔÔËÐÐÒÔÏÂÓï¾ä£º b?Qq
3r
zoyZb1 E9PAHB^C`7a-cl2#=
Set oRs = oCn.Execute("SET NOCOUNT ON;INSERT INTO Products _
¡¡¡¡(ProductName) VALUES ('Chalk');SELECT @@IDENTITY")
¡¡¡¡lProductID = oRs(0)
\X%Q
.
#;_M.b5k
Av%W&B*5b&SX@XuiK# ¡¡¡¡yRIyr-Ewi67S=
`qL-=lf#(=k4/- ´Ë´úÂë¸æËß SQL Server ²»Òª·µ»Ø²éѯµÄÐмÆÊý£¬È»ºóÖ´ÐÐ INSERT Óï¾ä£¬²¢·µ»Ø¸Õ¸ÕΪÕâ¸öÐÂÐд´½¨µÄ IDENTITY Öµ¡£SET NOCOUNT ON Óï¾ä±íʾ·µ»ØµÄ¼Ç¼¼¯ÓÐÒ»ÐкÍÒ»ÁУ¬ÆäÖаüº¬ÁËÕâ¸öÐ嵀 IDENTITY Öµ¡£Èç¹ûûÓдËÓï¾ä£¬Ôò»áÊ×ÏÈ·µ»ØÒ»¸ö¿ÕµÄ¼Ç¼¼¯(ÒòΪ INSERT Óï¾ä²»·µ»ØÈκÎÊý¾Ý)£¬È»ºó»á·µ»ØµÚ¶þ¸ö¼Ç¼¼¯£¬µÚ¶þ¸ö¼Ç¼¼¯Öаüº¬ IDENTITY Öµ¡£Õâ¿ÉÄÜÓÐЩÁîÈËÀ§»ó£¬ÓÈÆäÊÇÒòΪÄú´ÓÀ´¾ÍûÓÐÏ£Íû¹ý INSERT »á·µ»Ø¼Ç¼¼¯¡£Ö®ËùÒԻᷢÉú´ËÇé¿ö£¬ÊÇÒòΪ SQL Server ¿´µ½ÁËÕâ¸öÐмÆÊý(¼´Ò»ÐÐÊܵ½Ó°Ïì)²¢½«Æä½âÊÍΪ±íʾһ¸ö¼Ç¼¼¯¡£Òò´Ë£¬ÕæÕýµÄÊý¾Ý±»Íƻص½Á˵ڶþ¸ö¼Ç¼¼¯¡£µ±È»Äú¿ÉÒÔʹÓà ADO ÖÐµÄ NextRecordset ·½·¨»ñÈ¡´ËµÚ¶þ¸ö¼Ç¼¼¯£¬µ«Èç¹û×ÜÄܹ»Ê×ÏÈ·µ»Ø¸Ã¼Ç¼¼¯ÇÒÖ»·µ»Ø¸Ã¼Ç¼¼¯£¬Ôò»á¸ü·½±ã£¬Ò²¸üÓÐЧÂÊ¡£ r}4=Pg!0lI1'd$ nhM
z#1H6il€ ¡¡¡¡´Ë·½·¨ËäÈ»ÓÐЧ£¬µ«ÐèÒªÔÚ SQL Óï¾äÖжîÍâÌí¼ÓһЩ´úÂë¡£»ñµÃÏàͬ½á¹ûµÄÁíÒ»·½·¨ÊÇÔÚ INSERT ֮ǰʹÓà SET NOCOUNT ON Óï¾ä£¬²¢½« SELECT @@IDENTITY Óï¾ä·ÅÔÚ±íÖÐµÄ FOR INSERT ´¥·¢Æ÷ÖУ¬ÈçÏÂÃæµÄ´úÂëÆ¬¶ÎËùʾ¡£ÕâÑù£¬ÈκνøÈë¸Ã±íµÄ INSERT Óï¾ä¶¼½«×Ô¶¯·µ»Ø IDENTITY Öµ¡£ AP!8ZrGD+TX [= o8a
nR5%jfJ;Y^JK ¡¡¡¡CREATE TRIGGER trProducts_Insert ON Products FOR INSERT AS O*|\k()=WM=3VNX! ¡¡¡¡SELECT @@IDENTITY p{ i'Z5!c#DJM-ylK ¡¡¡¡GO [(Y'v$Tgm6b kx*?Zy\+,P )A l ASsvt~ H]AfXVyr6VK' ¡¡¡¡´¥·¢Æ÷Ö»ÔÚ Products ±íÉÏ·¢Éú INSERT ʱÆô¶¯£¬ËùÒÔËü×ÜÊÇ»áÔڳɹ¦ INSERT Ö®ºó·µ»ØÒ»¸ö IDENTITY¡£Ê¹Óô˼¼Êõ£¬Äú¿ÉÒÔʼÖÕÒÔÏàͬµÄ·½Ê½ÔÚÓ¦ÓóÌÐòÖмìË÷ IDENTITY Öµ¡£ ?spLr+xB*gSa@zr 9l*$OM+YOhBxdnl
ÄÚǶÊÓͼÓëÁÙʱ±í G47&l|c?tLGzNiZ
¡¡¡¡Ä³Ð©Ê±ºò£¬²éѯÐèÒª½«Êý¾ÝÓëÆäËûһЩ¿ÉÄÜÖ»ÄÜͨ¹ýÖ´ÐÐ GROUP BY È»ºóÖ´Ðбê×¼²éѯ²ÅÄÜÊÕ¼¯µÄÊý¾Ý½øÐÐÁª½Ó¡£ÀýÈ磬Èç¹ûÒª²éѯ×îÐÂÎå¸ö¶¨µ¥µÄÓйØÐÅÏ¢£¬ÄúÊ×ÏÈÐèÒªÖªµÀÊÇÄÄЩ¶¨µ¥¡£Õâ¿ÉÒÔʹÓ÷µ»Ø¶¨µ¥ ID µÄ SQL ²éѯÀ´¼ìË÷¡£´ËÊý¾Ý¾Í»á´æ´¢ÔÚÁÙʱ±í(ÕâÊÇÒ»¸ö³£Óü¼Êõ)ÖУ¬È»ºóÓë Products ±í½øÐÐÁª½Ó£¬ÒÔ·µ»ØÕâЩ¶¨µ¥ÊÛ³öµÄ²úÆ·ÊýÁ¿£ºy@fiRY8cKHl[Yxfs
¡¡¡¡CREATE TABLE #Temp1 (OrderID INT NOT NULL, _ p@
&0*
L
J*~xy ¡¡¡¡OrderDate DATETIME NOT NULL) ~NY{'b
.Ai&WYJ[= ¡¡¡¡INSERT INTO #Temp1 (OrderID, OrderDate)
6q|b1y[Jlo0M*iF ¡¡¡¡SELECT TOP 5 o.OrderID, o.OrderDate $j(sI:F[f/EZ? h ¡¡¡¡FROM Orders o ORDER BY o.OrderDate DESC ,5,N,?)qsk}67B/ ¡¡¡¡SELECT p.ProductName, SUM(od.Quantity) AS ProductQuantity Rgg cKg"#_e@$pp ¡¡¡¡FROM #Temp1 t &peq'(r0B`C8xr ¡¡¡¡INNER JOIN [Order Details] od ON t.OrderID = od.OrderID 5\i3Gmvh%7^+r%. ¡¡¡¡INNER JOIN Products p ON od.ProductID = p.ProductID \?lepW"s1=BP{ ¡¡¡¡GROUP BY p.ProductName V($?5}|w8yZ}O?Y ¡¡¡¡ORDER BY p.ProductName d5y]1'M8s_+q ¡¡¡¡DROP TABLE #Temp1 | O6/ {C,_:Px\R
¡¡¡¡ÕâЩ SQL Óï¾ä»á´´½¨Ò»¸öÁÙʱ±í£¬½«Êý¾Ý²åÈë¸Ã±íÖУ¬½«ÆäËûÊý¾ÝÓë¸Ã±í½øÐÐÁª½Ó£¬È»ºó³ýÈ¥¸ÃÁÙʱ±í¡£Õâ»áµ¼Ö´˲éѯ½øÐдóÁ¿ I/O ²Ù×÷£¬Òò´Ë£¬¿ÉÒÔÖØÐ±àд²éѯ£¬Ê¹ÓÃÄÚǶÊÓͼȡ´úÁÙʱ±í¡£ÄÚǶÊÓͼֻÊÇÒ»¸ö¿ÉÒÔÁª½Óµ½ FROM ×Ó¾äÖеIJéѯ¡£ËùÒÔ£¬Äú²»ÓÃÔÚ tempdb ÖеÄÁÙʱ±íÉϺķѴóÁ¿ I/O ºÍ´ÅÅÌ·ÃÎÊ£¬¶ø¿ÉÒÔʹÓÃÄÚǶÊÓͼµÃµ½Í¬ÑùµÄ½á¹û£ºcLWE;wbXI€#8xU
¡¡¡¡SELECT p.ProductName,
b6[eP+=(32BA ¡¡¡¡SUM(od.Quantity) AS ProductQuantity 8(=,jI4Spb q ="T ¡¡¡¡FROM ( X}%u,I|yeT($E7 ¡¡¡¡SELECT TOP 5 o.OrderID, o.OrderDate U0.€="ut%=W_POy ¡¡¡¡FROM Orders o C81t}e:IGIdk%Y@,zp) ¡¡¡¡ORDER BY o.OrderDate DESC €jx'l9yq16Z_O ¡¡¡¡) t [F=L@V8k\#T(YKI ¡¡¡¡INNER JOIN [Order Details] od ON t.OrderID = od.OrderID z[Q\HT^i!iU~1o6 ¡¡¡¡INNER JOIN Products p ON od.ProductID = p.ProductID 8WdR
)@(%c:yv ¡¡¡¡GROUP BY +62$:xs;5h$ID2€$q# ¡¡¡¡p.ProductName :k
=IPIj;%kAe
hAOqa ¡¡¡¡ORDER BY k61e5sDjy]C1Nb l= ¡¡¡¡p.ProductName | rY!c
Yv~_lzvnT
¡¡¡¡´Ë²éѯ²»½ö±ÈÇ°ÃæµÄ²éѯЧÂʸü¸ß£¬¶øÇÒ³¤¶È¸ü¶Ì¡£ÁÙʱ±í»áÏûºÄ´óÁ¿×ÊÔ´¡£Èç¹ûÖ»ÐèÒª½«Êý¾ÝÁª½Óµ½ÆäËû²éѯ£¬Ôò¿ÉÒÔÊÔÊÔʹÓÃÄÚǶÊÓͼ£¬ÒÔ½ÚÊ¡×ÊÔ´¡£5&1j,;FVS}UB1tT/FF
¡¡¡¡±ÜÃâ LEFT JOIN ºÍ NULLQv)l4)Z+?G^$g:e.
¡¡¡¡µ±È»£¬ÓкܶàʱºòÄúÐèÒªÖ´ÐÐ LEFT JOIN ºÍʹÓà NULL Öµ¡£µ«ÊÇ£¬ËüÃDz¢²»ÊÊÓÃÓÚËùÓÐÇé¿ö¡£¸Ä±ä SQL ²éѯµÄ¹¹½¨·½Ê½¿ÉÄÜ»á²úÉú½«Ò»¸ö»¨¼¸·ÖÖÓÔËÐеı¨¸æËõ¶Ìµ½Ö»»¨¼¸ÃëÖÓÕâÑùµÄÌìÈÀÖ®±ðµÄЧ¹û¡£ÓÐʱ£¬±ØÐëÔÚ²éѯÖе÷ÕûÊý¾ÝµÄÐÎ̬£¬Ê¹Ö®ÊÊÓ¦Ó¦ÓóÌÐòËùÒªÇóµÄÏÔʾ·½Ê½¡£ËäÈ» TABLE Êý¾ÝÀàÐÍ»á¼õÉÙ´óÁ¿Õ¼ÓÃ×ÊÔ´µÄÇé¿ö£¬µ«ÔÚ²éѯÖл¹ÓÐÐí¶àÇøÓò¿ÉÒÔ½øÐÐÓÅ»¯¡£SQL µÄÒ»¸öÓмÛÖµµÄ³£Óù¦ÄÜÊÇ LEFT JOIN¡£Ëü¿ÉÒÔÓÃÓÚ¼ìË÷µÚÒ»¸ö±íÖеÄËùÓÐÐС¢µÚ¶þ¸ö±íÖÐËùÓÐÆ¥ÅäµÄÐС¢ÒÔ¼°µÚ¶þ¸ö±íÖÐÓëµÚÒ»¸ö±í²»Æ¥ÅäµÄËùÓÐÐС£ÀýÈ磬Èç¹ûÏ£Íû·µ»ØÃ¿¸ö¿Í»§¼°Æä¶¨µ¥£¬Ê¹Óà LEFT JOIN Ôò¿ÉÒÔÏÔʾÓж¨µ¥ºÍûÓж¨µ¥µÄ¿Í»§¡£DMe=2[UD3(S96m+UU
¡¡¡¡´Ë¹¤¾ß¿ÉÄܻᱻ¹ý¶ÈʹÓá£LEFT JOIN ÏûºÄµÄ×ÊÔ´·Ç³£Ö®¶à£¬ÒòΪËüÃǰüº¬Óë NULL(²»´æÔÚ)Êý¾ÝÆ¥ÅäµÄÊý¾Ý¡£ÔÚijЩÇé¿öÏ£¬ÕâÊDz»¿É±ÜÃâµÄ£¬µ«ÊÇ´ú¼Û¿ÉÄܷdz£¸ß¡£LEFT JOIN ±È INNER JOIN ÏûºÄ×ÊÔ´¸ü¶à£¬ËùÒÔÈç¹ûÄú¿ÉÒÔÖØÐ±àд²éѯÒÔʹµÃ¸Ã²éѯ²»Ê¹ÓÃÈκΠLEFT JOIN£¬Ôò»áµÃµ½·Ç³£¿É¹ÛµÄ»Ø±¨¡£0`l`9%2l7!a`F ?
¡¡¡¡¼Ó¿ìʹÓà LEFT JOIN µÄ²éѯËٶȵÄÒ»Ïî¼¼ÊõÉæ¼°´´½¨Ò»¸ö TABLE Êý¾ÝÀàÐÍ£¬²åÈëµÚÒ»¸ö±í(LEFT JOIN ×ó²àµÄ±í)ÖеÄËùÓÐÐУ¬È»ºóʹÓõڶþ¸ö±íÖеÄÖµ¸üРTABLE Êý¾ÝÀàÐÍ¡£´Ë¼¼ÊõÊÇÒ»¸öÁ½²½µÄ¹ý³Ì£¬µ«Óë±ê×¼µÄ LEFT JOIN Ïà±È£¬¿ÉÒÔ½ÚÊ¡´óÁ¿Ê±¼ä¡£Ò»¸öºÜºÃµÄ¹æÔòÊdz¢ÊÔ¸÷ÖÖ²»Í¬µÄ¼¼Êõ²¢¼Ç¼ÿÖÖ¼¼ÊõËùÐèµÄʱ¼ä£¬Ö±µ½»ñµÃÓÃÓÚÄúµÄÓ¦ÓóÌÐòµÄÖ´ÐÐÐÔÄÜ×î¼ÑµÄ²éѯ¡£3]^r62M4^d4€
@wLpo+Cna}=€*`W ²âÊÔ²éѯµÄËÙ¶Èʱ£¬ÓбØÒª¶à´ÎÔËÐд˲éѯ£¬È»ºóȡһ¸öƽ¾ùÖµ¡£ÒòΪ²éѯ(»ò´æ´¢¹ý³Ì)¿ÉÄÜ»á´æ´¢ÔÚ SQL Server ÄÚ´æÖеĹý³Ì»º´æÖУ¬Òò´ËµÚÒ»´Î³¢ÊԺķѵÄʱ¼äºÃÏñÉÔ³¤Ò»Ð©£¬¶øËùÓкóÐø³¢ÊԺķѵÄʱ¼ä¶¼½Ï¶Ì¡£ÁíÍ⣬ÔËÐÐÄúµÄ²éѯʱ£¬¿ÉÄÜÕýÔÚÕë¶ÔÏàͬµÄ±íÔËÐÐÆäËû²éѯ¡£µ±ÆäËû²éÑ¯Ëø¶¨ºÍ½âËøÕâЩ±íʱ£¬¿ÉÄܻᵼÖÂÄúµÄ²éѯҪÅŶӵȴý¡£ÀýÈ磬Èç¹ûÄú½øÐвéѯʱijÈËÕýÔÚ¸üР´Ë±íÖеÄÊý¾Ý£¬ÔòÔÚ¸üÐÂÌύʱÄúµÄ²éѯ¿ÉÄÜÐèÒªºÄ·Ñ¸ü³¤Ê±¼äÀ´Ö´ÐС£
¡¡¡¡±ÜÃâʹÓà LEFT JOIN ʱËٶȽµµÍµÄ×î¼òµ¥·½·¨ÊǾ¡¿ÉÄÜ¶àµØÎ§ÈÆËüÃÇÉè¼ÆÊý¾Ý¿â¡£ÀýÈ磬¼ÙÉèijһ²úÆ·¿ÉÄܾßÓÐÀà±ðÒ²¿ÉÄÜûÓÐÀà±ð¡£Èç¹û Products ±í´æ´¢ÁËÆäÀà±ðµÄ ID£¬¶øÃ»ÓÐÓÃÓÚij¸öÌØ¶¨²úÆ·µÄÀà±ð£¬ÔòÄú¿ÉÒÔÔÚ×Ö¶ÎÖд洢 NULL Öµ¡£È»ºóÄú±ØÐëÖ´ÐÐ LEFT JOIN À´»ñÈ¡ËùÓвúÆ·¼°ÆäÀà±ð¡£Äú¿ÉÒÔ´´½¨Ò»¸öֵΪ¡°No Category¡±µÄÀà±ð£¬´Ó¶øÖ¸¶¨Íâ¼ü¹ØÏµ²»ÔÊÐí NULL Öµ¡£Í¨¹ýÖ´ÐÐÉÏÊö²Ù×÷£¬ÏÖÔÚÄú¾Í¿ÉÒÔʹÓà INNER JOIN ¼ìË÷ËùÓвúÆ·¼°ÆäÀà±ðÁË¡£ËäÈ»Õâ¿´ÆðÀ´ºÃÏñÊÇÒ»¸ö´øÓжàÓàÊý¾ÝµÄ±äͨ·½·¨£¬µ«¿ÉÄÜÊÇÒ»¸öºÜÓмÛÖµµÄ¼¼Êõ£¬ÒòΪËü¿ÉÒÔÏû³ý SQL Åú´¦ÀíÓï¾äÖÐÏûºÄ×ÊÔ´½Ï¶àµÄ LEFT JOIN¡£ÔÚÊý¾Ý¿âÖÐÈ«²¿Ê¹Óô˸ÅÄî¿ÉÒÔΪÄú½ÚÊ¡´óÁ¿µÄ´¦Àíʱ¼ä¡£Çë¼Çס£¬¶ÔÓÚÄúµÄÓû§¶øÑÔ£¬¼´Ê¹¼¸ÃëÖÓµÄʱ¼äÒ²·Ç³£ÖØÒª£¬ÒòΪµ±ÄúÓÐÐí¶àÓû§ÕýÔÚ·ÃÎÊͬһ¸öÁª»úÊý¾Ý¿âÓ¦ÓóÌÐòʱ£¬Õ⼸ÃëÖÓʵ¼ÊÉϵÄÒâÒå»á·Ç³£ÖØ´ó¡£tiq]cln/(&& 0c!$~z
¡¡¡¡Áé»îʹÓõѿ¨¶û³Ë»ý:Y{Rl42myF{,{cj
¡¡¡¡¶ÔÓڴ˼¼ÇÉ£¬ÎÒ½«½øÐзdz£ÏêϸµÄ½éÉÜ£¬²¢ÌᳫÔÚijЩÇé¿öÏÂʹÓõѿ¨¶û³Ë»ý¡£³öÓÚijЩÔÒò£¬µÑ¿¨¶û³Ë»ý (CROSS JOIN) Ôâµ½Á˺ܶàÇ´Ô𣬿ª·¢ÈËԱͨ³£»á±»¾¯¸æ¸ù±¾¾Í²»ÒªÊ¹ÓÃËüÃÇ¡£ÔÚÐí¶àÇé¿öÏ£¬ËüÃÇÏûºÄµÄ×ÊÔ´Ì«¶à£¬´Ó¶øÎÞ·¨¸ßЧʹÓᣵ«ÊÇÏñ SQL ÖеÄÈκι¤¾ßÒ»Ñù£¬Èç¹ûÕýȷʹÓã¬ËüÃÇÒ²»áºÜÓмÛÖµ¡£ÀýÈ磬Èç¹ûÄúÏëÔËÐÐÒ»¸ö·µ»ØÃ¿ÔÂÊý¾Ý(¼´Ê¹Ä³Ò»Ìض¨Ô·ݿͻ§Ã»Óж¨µ¥Ò²Òª·µ»Ø)µÄ²éѯ£¬Äú¾Í¿ÉÒԺܷ½±ãµØÊ¹Óõѿ¨¶û³Ë»ý¡£6$|Ai}]S%/L1|6
|wJ
¡¡¡¡ËäÈ»Õâ¿´ÆðÀ´ºÃÏñûʲôÉñÆæµÄ£¬µ«ÊÇÇ뿼ÂÇһϣ¬Èç¹ûÄú´Ó¿Í»§µ½¶¨µ¥(ÕâЩ¶¨µ¥°´Ô·ݽøÐзÖ×é²¢¶ÔÏúÊÛ¶î½øÐÐС¼Æ)½øÐÐÁ˱ê×¼µÄ INNER JOIN£¬ÔòÖ»»á»ñµÃ¿Í»§Óж¨µ¥µÄÔ·ݡ£Òò´Ë£¬¶ÔÓÚ¿Í»§Î´¶©¹ºÈκβúÆ·µÄÔ·ݣ¬Äú²»»á»ñµÃ 0 Öµ¡£Èç¹ûÄúÏëΪÿ¸ö¿Í»§¶¼»æÖÆÒ»¸öͼ£¬ÒÔÏÔʾÿ¸öÔº͸ÃÔÂÏúÊ۶Ôò¿ÉÄÜÏ£Íû´Ëͼ°üÀ¨ÔÂÏúÊÛ¶îΪ 0 µÄÔ·ݣ¬ÒÔ±ãÖ±¹Û±êʶ³öÕâЩÔ·ݡ£Èç¹ûʹÓà Figure 2(×îºóÒ»Ò³) ÖÐµÄ SQL£¬Êý¾ÝÔò»áÌø¹ýÏúÊÛ¶îΪ 0 ÃÀÔªµÄÔ·ݣ¬ÒòΪÔÚ¶¨µ¥±íÖжÔÓÚÁãÏúÊÛ¶î²»»á°üº¬ÈκÎÐÐ(¼ÙÉèÄúÖ»´æ´¢·¢ÉúµÄʼþ)¡£`h 6Vt7Q3tX`5QF
¡¡¡¡Figure 3(×îºóÒ»Ò³)ÖеĴúÂëËäÈ»½Ï³¤£¬µ«ÊÇ¿ÉÒÔ´ïµ½»ñÈ¡ËùÓÐÏúÊÛÊý¾Ý(ÉõÖÁ°üÀ¨Ã»ÓÐÏúÊÛ¶îµÄÔ·Ý)µÄÄ¿±ê¡£Ê×ÏÈ£¬Ëü»áÌáȡȥÄêËùÓÐÔ·ݵÄÁÐ±í£¬È»ºó½«ËüÃÇ·ÅÈëµÚÒ»¸ö TABLE Êý¾ÝÀàÐͱí (@tblMonths) ÖС£ÏÂÒ»²½£¬´Ë´úÂë»á»ñÈ¡ÔÚ¸Ãʱ¼ä¶ÎÄÚÓÐÏúÊÛ¶îµÄËùÓпͻ§¹«Ë¾µÄÃû³ÆÁÐ±í£¬È»ºó½«ËüÃÇ·ÅÈëÁíÒ»¸ö TABLE Êý¾ÝÀàÐͱí (@tblCus-tomers) ÖС£ÕâÁ½¸ö±í´æ´¢ÁË´´½¨½á¹û¼¯Ëù±ØÐèµÄËùÓлù±¾Êý¾Ý£¬µ«Êµ¼ÊÏúÊÛÊýÁ¿³ýÍâ¡£ µÚÒ»¸ö±íÖÐÁгöÁËËùÓÐÔ·Ý(12 ÐÐ)£¬µÚ¶þ¸ö±íÖÐÁгöÁËÕâ¸öʱ¼ä¶ÎÄÚÓÐÏúÊÛ¶îµÄËùÓпͻ§(¶ÔÓÚÎÒÊÇ 81 ¸ö)¡£²¢·Çÿ¸ö¿Í»§ÔÚ¹ýÈ¥ 12 ¸öÔÂÖеÄÿ¸öÔ¶¼¹ºÂòÁ˲úÆ·£¬ËùÒÔ£¬Ö´ÐÐ INNER JOIN »ò LEFT JOIN ²»»á·µ»ØÃ¿¸öÔµÄÿ¸ö¿Í»§¡£ÕâЩ²Ù×÷Ö»»á·µ»Ø¹ºÂò²úÆ·µÄ¿Í»§ºÍÔ·ݡ£~^XTx9mi?Pa{wT
¡¡¡¡µÑ¿¨¶û³Ë»ýÔò¿ÉÒÔ·µ»ØËùÓÐÔ·ݵÄËùÓпͻ§¡£µÑ¿¨¶û³Ë»ý»ù±¾ÉÏÊǽ«µÚÒ»¸ö±íÓëµÚ¶þ¸ö±íÏà³Ë£¬Éú³ÉÒ»¸öÐм¯ºÏ£¬ÆäÖаüº¬µÚÒ»¸ö±íÖеÄÐÐÊýÓëµÚ¶þ¸ö±íÖеÄÐÐÊýÏà³ËµÄ½á¹û¡£Òò´Ë£¬µÑ¿¨¶û³Ë»ý»áÏò±í @tblFinal ·µ»Ø 972 ÐС£×îºóµÄ²½ÖèÊÇʹÓôËÈÕÆÚ·¶Î§ÄÚÿ¸ö¿Í»§µÄÔÂÏúÊÛ¶î×ܼƸüР@tblFinal ±í£¬ÒÔ¼°Ñ¡Ôñ×îÖÕµÄÐм¯¡£Azw;ePC)s
XU~^
¡¡¡¡Èç¹ûÓÉÓڵѿ¨¶û³Ë»ýÕ¼ÓõÄ×ÊÔ´¿ÉÄÜ»áºÜ¶à£¬¶ø²»ÐèÒªÕæÕýµÄµÑ¿¨¶û³Ë»ý£¬Ôò¿ÉÒÔ½÷É÷µØÊ¹Óà CROSS JOIN¡£ÀýÈ磬Èç¹û¶Ô²úÆ·ºÍÀà±ðÖ´ÐÐÁË CROSS JOIN£¬È»ºóʹÓà WHERE ×Ӿ䡢DISTINCT »ò GROUP BY À´É¸Ñ¡³ö´ó¶àÊýÐУ¬ÄÇôʹÓà INNER JOIN »á»ñµÃͬÑùµÄ½á¹û£¬¶øÇÒЧÂʸߵöࡣÈç¹ûÐèҪΪËùÓеĿÉÄÜÐÔ¶¼·µ»ØÊý¾Ý(ÀýÈçÔÚÄúÏ£ÍûʹÓÃÿÔÂÏúÊÛÈÕÆÚÌî³äÒ»¸öͼ±íʱ)£¬ÔòµÑ¿¨¶û³Ë»ý¿ÉÄÜ»á·Ç³£ÓаïÖú¡£µ«ÊÇ£¬Äú²»Ó¦¸Ã½«ËüÃÇÓÃÓÚÆäËûÓÃ;£¬ÒòΪÔÚ´ó¶àÊý·½°¸ÖÐ INNER JOIN µÄЧÂÊÒª¸ßµÃ¶à¡£ #j5bi')Vk\$!d
¡¡¡¡Ê°ÒŲ¹ÁãH
-bpj')QI%t|^
¡¡¡¡ÕâÀï½éÉÜÆäËûһЩ¿É°ïÖúÌá¸ß SQL ²éѯЧÂʵij£Óü¼Êõ¡£¼ÙÉèÄú½«°´ÇøÓò¶ÔËùÓÐÏúÊÛÈËÔ±½øÐзÖ×é²¢½«ËûÃǵÄÏúÊÛ¶î½øÐÐС¼Æ£¬µ«ÊÇÄúÖ»ÏëÒªÄÇЩÊý¾Ý¿âÖбê¼ÇΪ´¦Óڻ״̬µÄÏúÊÛÈËÔ±¡£Äú¿ÉÒÔ°´ÇøÓò¶ÔÏúÊÛÈËÔ±·Ö×飬²¢Ê¹Óà HAVING ×Ó¾äÏû³ýÄÇЩδ´¦Óڻ״̬µÄÏúÊÛÈËÔ±£¬Ò²¿ÉÒÔÔÚ WHERE ×Ó¾äÖÐÖ´Ðд˲Ù×÷¡£ÔÚ WHERE ×Ó¾äÖÐÖ´Ðд˲Ù×÷»á¼õÉÙÐèÒª·Ö×éµÄÐÐÊý£¬ËùÒÔ±ÈÔÚ HAVING ×Ó¾äÖÐÖ´Ðд˲Ù×÷ЧÂʸü¸ß¡£HAVING ×Ó¾äÖлùÓÚÐеÄÌõ¼þµÄɸѡ»áÇ¿ÖÆ²éѯ¶ÔÄÇЩÔÚ WHERE ×Ó¾äÖлᱻȥ³ýµÄÊý¾Ý½øÐзÖ×é¡£*ce(}?rGu{oUWQVAla
¡¡¡¡ÁíÒ»¸öÌá¸ßЧÂʵļ¼ÇÉÊÇʹÓà DISTINCT ¹Ø¼ü×Ö²éÕÒÊý¾ÝÐеĵ¥¶À±¨±í£¬À´´úÌæÊ¹Óà GROUP BY ×Ӿ䡣ÔÚÕâÖÖÇé¿öÏ£¬Ê¹Óà DISTINCT ¹Ø¼ü×ÖµÄ SQL ЧÂʸü¸ß¡£ÇëÔÚÐèÒª¼ÆËã¾ÛºÏº¯Êý(SUM¡¢COUNT¡¢MAX µÈ)µÄÇé¿öÏÂÔÙʹÓà GROUP BY¡£ÁíÍ⣬Èç¹ûÄúµÄ²éѯ×ÜÊÇ×Ô¼º·µ»ØÒ»¸öΨһµÄÐУ¬Ôò²»ÒªÊ¹Óà DISTINCT ¹Ø¼ü×Ö¡£ÔÚÕâÖÖÇé¿öÏ£¬DISTINCT ¹Ø¼ü×ÖÖ»»áÔö¼Óϵͳ¿ªÏú¡£t\\t;-Wr*O"kBHN
ÄúÒѾ¿´µ½ÁË£¬ÓдóÁ¿¼¼Êõ¶¼¿ÉÓÃÓÚÓÅ»¯²éѯºÍʵÏÖÌØ¶¨µÄÒµÎñ¹æÔò£¬¼¼ÇɾÍÊǽøÐÐһЩ³¢ÊÔ£¬È»ºó±È½ÏËüÃǵÄÐÔÄÜ¡£×îÖØÒªµÄÊÇÒª²âÊÔ¡¢²âÊÔ¡¢ÔÙ²âÊÔ¡£ M
€pDiA?nC
oB:qU
¡¡¡¡Figure 2 Returning All Customers and Their Sales ?a:Cl=\y&I=Lwyw' ¡¡¡¡set nocount on ryDv€y`m[MYJL#/n ¡¡¡¡DECLARE @dtStartDate DATETIME, qPd?3}&5 lVG%Mo= ¡¡¡¡@dtEndDate DATETIME, |?Ha=?w[Sv kh" ¡¡¡¡@dtDate DATETIME D=ZD=JraX=mc5UGQ ¡¡¡¡SET @dtEndDate = '5/5/1997' okiv-~cvNry$,#` ¡¡¡¡SET @dtEndDate = DATEADD(DD, -1, CAST(CAST((MONTH(@dtEndDate) + 1) 1^D_ ?ttuM"]Ofw ¡¡¡¡AS VARCHAR(2)) + '/01/' + CAST(YEAR(@dtEndDate) AS VARCHAR(4)) + ' i
Xeg}"X:$t/rg Xx* ¡¡¡¡23:59:59' AS DATETIME)) 4,sEX"rPDTGE=;o4\8 ¡¡¡¡SET @dtStartDate = DATEADD(MM, -1 * 12, @dtEndDate) }"2PkuHo2{DtX 9V
v ¡¡¡¡SELECT CAST(YEAR(o.OrderDate) AS VARCHAR(4)) + '-' + nj]TV{UOph~W ¡¡¡¡CASE QJBj6R5bt)}?E40 ¡¡¡¡WHEN MONTH(o.OrderDate) < 10 v}d:LO4oXL||%&M ¡¡¡¡THEN '0' + CAST(MONTH(o.OrderDate) AS VARCHAR(2)) k])R"iN? 4gpHaP
¡¡¡¡ELSE CAST(MONTH(o.OrderDate) AS VARCHAR(2)) Y"Z35]V/
-/{`a ¡¡¡¡END AS sMonth, "t
`'cW€ D*[Q-W= ¡¡¡¡c.CustomerID, 5GrV6P
-F:vrgFR6 ¡¡¡¡c.CompanyName, cJcc`fs$d'l*!)Fs[j$ ¡¡¡¡c.ContactName, \U7}b(2W{/#1oW1= ¡¡¡¡SUM(od.Quantity * od.UnitPrice) AS mSales h/owi
€"e,"l;-r ¡¡¡¡FROM Customers c +`6@nH@/_nRjE ¡¡¡¡INNER JOIN Orders o ON c.CustomerID = o.CustomerID
N(@@.vaj*5+ y}[ ¡¡¡¡INNER JOIN [Order Details] od ON o.OrderID = od.OrderID '@P*u$ gWQ9[\@V?C/ ¡¡¡¡WHERE o.OrderDate BETWEEN @dtStartDate AND @dtEndDate P93^i3 k!ChSSO{2 ¡¡¡¡GROUP BY +#!+[ZLZ]I@e-&[;LU ¡¡¡¡CAST(YEAR(o.OrderDate) AS VARCHAR(4)) + '-' + e~SB?,H
LGJ55iHo ¡¡¡¡CASE
JB
8Nii@b
^s6 ¡¡¡¡WHEN MONTH(o.OrderDate) < 10 &A€J0'_l[Ou|CQ ¡¡¡¡THEN '0' + CAST(MONTH(o.OrderDate) AS VARCHAR(2)) ,ocE}w|q?IgX't ¡¡¡¡ELSE CAST(MONTH(o.OrderDate) AS VARCHAR(2)) HH[#"UgcV\`mry\#r-? ¡¡¡¡END, /|eE*5*j`JvD ¡¡¡¡c.CustomerID, VL@?%d4Nrg@q?S\ ¡¡¡¡c.CompanyName, :Vo6U?+KQ5?5sRI ¡¡¡¡c.ContactName I=vO&C6&TZM}aV,H ¡¡¡¡ORDER BY pw~NW
B}eQ!
nABg5 ¡¡¡¡c.CompanyName, mTo5[3{$'L|a.Jl ¡¡¡¡sMonth Q)#jP`S yY/i@0O ¡¡¡¡Figure 3 Cartesian Product at Work "mWu_NGwsx7dOY+^e+ ¡¡¡¡DECLARE @tblMonths TABLE (sMonth VARCHAR(7)) ot.
FlcY!!7 VF ¡¡¡¡DECLARE @tblCustomers TABLE ( CustomerID CHAR(10), 4C&(~aZ}}xpGH? ¡¡¡¡CompanyName VARCHAR(50), r oNE=pah\"Et5?CBF ¡¡¡¡ContactName VARCHAR(50)) $#?v')47~|]t% ¡¡¡¡DECLARE @tblFinal TABLE ( sMonth VARCHAR(7), lI61$@1L4)#1V0 ¡¡¡¡CustomerID CHAR(10), #=/SK4#€Zfz}{bx ¡¡¡¡CompanyName VARCHAR(50), )2_7kdIk6K [b_/d ¡¡¡¡ContactName VARCHAR(50), tLDYd;
C"=?^Kt%( ¡¡¡¡mSales MONEY) BW]0_Uh0GFc=;R#hx ¡¡¡¡DECLARE @dtStartDate DATETIME, {'GDMVMIk:`$]i ¡¡¡¡@dtEndDate DATETIME, 1xx4:jm5B$=4% ¡¡¡¡@dtDate DATETIME, DoNmXRipjhhV6-=z ¡¡¡¡@i INTEGER "
74#f'sppB)VGE ¡¡¡¡SET @dtEndDate = '5/5/1997' ,N|j9zX/Oi?w5P6@) ¡¡¡¡SET @dtEndDate = DATEADD(DD, -1, CAST(CAST((MONTH(@dtEndDate) + 1) AS 3B$3MDUS{xnr\7s ¡¡¡¡VARCHAR(2)) + '/01/' + CAST(YEAR(@dtEndDate) AS VARCHAR(4)) + ' 9&o5vQ)qAlkfb{q ¡¡¡¡23:59:59' AS DATETIME)) 2|O
=%U-%;y.j] ¡¡¡¡SET @dtStartDate = DATEADD(MM, -1 * 12, @dtEndDate) b-]PB|W2gn=' ¡¡¡¡¡ª Get all months into the first table b7;_?9T}BHn.NjZ9l* ¡¡¡¡SET @i = 0 Ds XOMaOx@[1S9 ¡¡¡¡WHILE (@i < 12) 6XCGA9:: $NA'cwB~( ¡¡¡¡BEGIN j]q&W$K=}Gp,PQ!q ¡¡¡¡SET @dtDate = DATEADD(mm, -1 * @i, @dtEndDate) n67:R9m+!$Y]' ¡¡¡¡INSERT INTO @tblMonths SELECT CAST(YEAR(@dtDate) AS VARCHAR(4)) + '-' + €bazu(98^Za2 ¡¡¡¡CASE rg)-o7Nt`h(-+ ¡¡¡¡WHEN MONTH(@dtDate) < 10 1{;*i?].DwvG X`7 ¡¡¡¡THEN '0' + CAST(MONTH(@dtDate) AS VARCHAR(2)) =-Y_(P=fLk/U@e\y ¡¡¡¡ELSE CAST(MONTH(@dtDate) AS VARCHAR(2)) usZ]745vYyFAY ¡¡¡¡END AS sMonth L=
pG?*%QU/
0?
¡¡¡¡SET @i = @i + 1 C=}N#el)hGLo(t G ¡¡¡¡END oIY 18Lnedk:;$|5e{ ¡¡¡¡¡ª Get all clients who had sales during that period into the "y" table
\8#Xgj-{df:g?l_L ¡¡¡¡INSERT INTO @tblCustomers L5`o]~1NmeT-JU ¡¡¡¡SELECT DISTINCT LA"{WO.0DPngq*W?M ¡¡¡¡c.CustomerID, bKVq%Ow$jUbM9" ¡¡¡¡c.CompanyName, ;r]"YH^Y(g^5u|K ¡¡¡¡c.ContactName R18^[[€zFN' ¡¡¡¡FROM Customers c Bec 1uF@"Ao9v,!t{ ¡¡¡¡INNER JOIN Orders o ON c.CustomerID = o.CustomerID jhQ!ib/QN=6/gRr# ¡¡¡¡WHERE o.OrderDate BETWEEN @dtStartDate AND @dtEndDate 17}RhgG+O&5uly4 ¡¡¡¡INSERT INTO @tblFinal 2 9~Sb%B/P-+m,$?}M ¡¡¡¡SELECT m.sMonth, x.C:+ri\AqUEU] ¡¡¡¡c.CustomerID, zk.Vg|)W%F|ik'hHW ¡¡¡¡c.CompanyName, zJO6QM"@,L,!azU ¡¡¡¡c.ContactName, )YpOr5=n\hmwp, ¡¡¡¡0 S@lK];w€mE6mIk:$|f ¡¡¡¡FROM @tblMonths m CROSS JOIN @tblCustomers c '_bBznp'F65'{ ?I3 ¡¡¡¡UPDATE @tblFinal SET 2
mI*3!2€I2'O{`l2] ¡¡¡¡mSales = mydata.mSales :7,OV
P0m:€|(8H
¡¡¡¡FROM @tblFinal f INNER JOIN x0H0zk88#SV4_ ¡¡¡¡( &%E@;ty&6s(`g KM ¡¡¡¡SELECT c.CustomerID, B?Xf=urz~QI8%*O{ ¡¡¡¡CAST(YEAR(o.OrderDate) AS VARCHAR(4)) + '-' + V=zEWd,`:o0GL\gO ¡¡¡¡CASE WHEN MONTH(o.OrderDate) < 10 S+)maY+c.
i?{+" ¡¡¡¡THEN '0' + CAST(MONTH(o.OrderDate) AS VARCHAR(2)) KAP "/sX&ZLjl'-
] ¡¡¡¡ELSE CAST(MONTH(o.OrderDate) AS VARCHAR(2)) *S*8o[@62P;Hoe@= ¡¡¡¡END AS sMonth, A€s@:5o:€=73 ¡¡¡¡SUM(od.Quantity * od.UnitPrice) AS mSales Pd-}c*?,"w*v|`(kmA ¡¡¡¡FROM Customers c U=^+YFL `H|y38 ¡¡¡¡INNER JOIN Orders o ON c.CustomerID = o.CustomerID uJ?8"_MKXY\y%=Xo ¡¡¡¡INNER JOIN [Order Details] od ON o.OrderID = od.OrderID nj[3zv(9`xC ¡¡¡¡WHERE o.OrderDate BETWEEN @dtStartDate AND @dtEndDate }x'r^,ln ,xbn@f9( ¡¡¡¡GROUP BY z#`6g/cZK+DV ¡¡¡¡c.CustomerID, Oy1EN|K'67]MRWCg=D ¡¡¡¡CAST(YEAR(o.OrderDate) AS VARCHAR(4)) + '-' + l51nx8BS2;RUCd` ¡¡¡¡CASE WHEN MONTH(o.OrderDate) < 10 @)Vr+q [C(Rg)5$: ¡¡¡¡THEN '0' + CAST(MONTH(o.OrderDate) AS VARCHAR(2)) Lus= ?q,rhc^RAL ¡¡¡¡ELSE CAST(MONTH(o.OrderDate) AS VARCHAR(2)) xO\7G8ZAbVjw.BX8h ¡¡¡¡END ?jCx8'j[Pq
$g= ¡¡¡¡) mydata on f.CustomerID = mydata.CustomerID AND f.sMonth = 5YdT N}#^_#w1u} ¡¡¡¡mydata.sMonth WTZ{sl"[_p`b:R ¡¡¡¡SELECT f.sMonth, #Oz=j7:w;M?,J5Bj ¡¡¡¡f.CustomerID, _25jkB|#IBg@y=,a ¡¡¡¡f.CompanyName, z|'HXH0-rBzds7= ¡¡¡¡f.ContactName, e"~Y*ab[i41n;= ¡¡¡¡f.mSales @rg=pPw(9Ve|5~/H ¡¡¡¡FROM @tblFinal f R/;j=€|~uYPmB?yr ¡¡¡¡ORDER BY `ds-?sI
\P'`* ¡¡¡¡f.CompanyName, 6q"AD6*F8ylu-5" ¡¡¡¡f.sMonth | =O&4lQR:Z0b'_\M;E` [°æÈ¨¹éÔ×÷Õß¼°coolcxm¹²Í¬ÓµÓУ¬×ªÔØÇë×¢Ã÷³ö´¦]
|