RE: New puzzle
Posted in 1997
Jonathan Thanks for pointing out the error. Sorry about that. Sujit ---------- From: Jonathan Leffler[SMTP:johnl@informix.com] Sent: Tuesday, July 29, 1997 11:55 AM To: spal@scotch.den.csci.csc.com Subject: RE: New puzzle Bzzzt. Wrong. Thank you for playing. Your answer produces the list sorted ALABAMA ALASKA ARIZONA ARKANSAS ... and not as requested. I've not broadcast this response. Yours, Jonathan Leffler (johnl@informix.com) #include <witticism.h> }From ilist@rmy.emory.edu Tue Jul 29 10:47 PDT 1997 }From: Sujit Pal <spal@scotch.den.csci.csc.com> }To: "'Paul Roberts'" <proberts@lynx.informix.com> }Cc: "'informix-list@rmy.emory.edu'" <informix-list@rmy.emory.edu> }Subject: RE: New puzzle }Date: Tue, 29 Jul 1997 11:00:46 -0600 }Mime-Version: 1.0 }X-Informix-List-Id: <list.15678> } }Paul } }If this is a 4GL puzzle, the solution is quite simple. Heres a program without using arrays which will do this: } }DATABASE test }MAIN } DEFINE st1, st2, st3 LIKE states.statename } DECLARE cStatename CURSOR FOR } SELECT statename FROM states } ORDER BY 1 } OPEN cStatename } WHILE (1) } FETCH cStatename INTO st1 } IF (sqlca.sqlcode = NOTFOUND) THEN } LET st1 = NULL } END IF } FETCH cStatename INTO st2 } IF (sqlca.sqlcode = NOTFOUND) THEN } LET st2 = NULL } END IF } FETCH cStatename INTO st3 } IF (sqlca.sqlcode = NOTFOUND) THEN } LET st3 = NULL } END IF } DISPLAY st1, st2, st3 } IF (st1 IS NULL) OR (st2 IS NULL) OR (st3 IS NULL) THEN } EXIT WHILE } END IF } END WHILE }END MAIN } }Instead of a DISPLAY you could send the contents out to a report. } }Doing it with a single select would be tougher (or maybe impossible?). } }HTH } }Sujit }---------- }OK, here's my 4GL reporting puzzle: how do I produce a report ordered }like this: } }ALABAMA LOUISIANA OHIO }ALASKA MAINE OKLAHOMA }ARIZONA MARYLAND OREGON }ARKANSAS MASSACHUSETTS PENNSYLVANIA }CALIFORNIA MICHIGAN RHODE ISLAND }COLORADO MINNESOTA SOUTH CAROLINA }CONNECTICUT MISSISSIPPI SOUTH DAKOTA }DELAWARE MISSOURI TENNESSEE }FLORIDA MONTANA TEXAS }GEORGIA NEBRASKA UTAH }HAWAII NEVADA VERMONT }IDAHO NEW HAMPSHIRE VIRGINIA }ILLINOIS NEW JERSEY WASHINGTON }INDIANA NEW MEXICO WEST VIRGINIA }IOWA NEW YORK WISCONSIN }KANSAS N CAROLINA WYOMING }KENTUCKY NORTH DAKOTA } }One way would be load up an array, but that would set a limit on the number }of elements we would handle (since the array has to be declared as of being }of some finite size). Is there a better way to do it? } } - Paul } } } }