When using geometry datatype, SQL Server hangs - sql-server

I want to compare a trip driven by devices by zones defined in our system. It works correct for 99% of the trips but some crash of SQL Server.
For instance this one:
DECLARE #string nvarchar(max) = ('LINESTRING(55.5104 24.9205,55.5104 24.9205,55.5105 24.9205,55.5105 24.9204,55.5105 24.9204,55.5105 24.9203,55.5104 24.9201,55.5049 24.9143,55.505 24.9144,55.5049 24.9143,55.4981 24.9072,55.4975 24.9069,55.4968 24.9067,55.4961 24.9066,55.4952 24.9066,55.4944 24.9069,55.494 24.9072,55.4934 24.9076,55.4929 24.9083,55.4927 24.9088,55.4926 24.9096,55.4926 24.9096,55.4926 24.9101,55.4928 24.9108,55.4931 24.9114,55.4936 24.9119,55.4936 24.9119,55.4938 24.9121,55.4951 24.9128,55.4948 24.9126,55.4949 24.9127,55.4967 24.9136,55.51 24.9203,55.5103 24.9204,55.5104 24.9203,55.5104 24.9203,55.5104 24.9202,55.51 24.9197,55.5039 24.9133,55.5039 24.9133,55.5039 24.9133,55.5004 24.9096,55.4982 24.9073,55.4976 24.907,55.4967 24.9067,55.496 24.9066,55.4954 24.9066,55.4944 24.9069,55.4939 24.9072,55.4932 24.9079,55.4929 24.9085,55.4927 24.9091,55.4926 24.9097,55.4927 24.9104,55.4929 24.911,55.4933 24.9115,55.494 24.9122,55.5069 24.9187,55.5091 24.9198,55.5093 24.9199,55.5094 24.9198,55.5094 24.9198,55.5094 24.9197,55.5093 24.9195,55.509 24.9193,55.509 24.9192,55.509 24.9192,55.509 24.9192,55.5089 24.9193,55.509 24.9194,55.5105 24.9203,55.5107 24.9204,55.5107 24.9204,55.5107 24.9204,55.5107 24.9204,55.5107 24.9204,55.5106 24.9205,55.5104 24.9204,55.5098 24.9201,55.4945 24.9124,55.4937 24.9119,55.4932 24.9113,55.4928 24.9106,55.4926 24.9099,55.4927 24.9091,55.4929 24.9084,55.4933 24.9078,55.4939 24.9073,55.4945 24.9069,55.4952 24.9067,55.4959 24.9066,55.4966 24.9067,55.4973 24.9069,55.4979 24.9072,55.4987 24.9079,55.5046 24.914,55.5101 24.9198,55.5104 24.9202,55.5105 24.9203,55.5105 24.9203,55.5105 24.9204,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.5102 24.9204,55.5102 24.9204,55.5048 24.9177,55.4936 24.9119,55.4933 24.9115,55.493 24.9111,55.4926 24.9101,55.4926 24.9096,55.4927 24.9089,55.493 24.9082,55.4935 24.9076,55.494 24.9072,55.4949 24.9068,55.4954 24.9066,55.4963 24.9066,55.4971 24.9068,55.4978 24.9072,55.4985 24.9077,55.5104 24.9202,55.5104 24.9202,55.5104 24.9203,55.5104 24.9203,55.5104 24.9204,55.5103 24.9204,55.5097 24.9201,55.5086 24.9196,55.5021 24.9163,55.495 24.9126,55.4947 24.9124,55.4944 24.9123,55.4942 24.9122,55.4938 24.912,55.4933 24.9115,55.493 24.911,55.4927 24.9103,55.4927 24.9095,55.4928 24.9087,55.4933 24.9079,55.4939 24.9073,55.4948 24.9069,55.4957 24.9066,55.4966 24.9067,55.4974 24.9069,55.4981 24.9073,55.5091 24.9188,55.5101 24.9199,55.5101 24.92,55.51 24.92,55.51 24.92,55.5099 24.9201,55.5097 24.92,55.5095 24.92,55.4957 24.9131,55.4939 24.9122,55.4933 24.9117,55.493 24.9112,55.4927 24.9106,55.4926 24.9099,55.4926 24.9091,55.4929 24.9084,55.4932 24.9079,55.4938 24.9073,55.4943 24.907,55.4951 24.9067,55.496 24.9066,55.4966 24.9067,55.4973 24.9069,55.4981 24.9073,55.5032 24.9126,55.5105 24.9203,55.5105 24.9203,55.5106 24.9204,55.5106 24.9204,55.5105 24.9204,55.5104 24.9205,55.5103 24.9205,55.5101 24.9204,55.497 24.9138,55.4938 24.9121,55.4932 24.9115,55.4929 24.911,55.4926 24.9104,55.4925 24.9098,55.4926 24.9092,55.4927 24.9087,55.4931 24.9081,55.4936 24.9074,55.494 24.9072,55.4947 24.9068,55.4954 24.9066,55.496 24.9066,55.4967 24.9067,55.4974 24.9069,55.4982 24.9074,55.5046 24.9141,55.5046 24.9141,55.5046 24.9141,55.5046 24.9141,55.5048 24.9143,55.5104 24.9203,55.5105 24.9205,55.5104 24.9205,55.5104 24.9205,55.5103 24.9205,55.5045 24.9175,55.4938 24.9119,55.4931 24.9112,55.4927 24.9104,55.4926 24.9094,55.4928 24.9085,55.4934 24.9078,55.4941 24.9072,55.4949 24.9068,55.4959 24.9067,55.4968 24.9068,55.4977 24.9071,55.4984 24.9077,55.509 24.9188,55.5099 24.9198,55.5103 24.9202,55.5103 24.9203,55.5103 24.9203,55.5103 24.9203,55.5102 24.9204,55.5101 24.9204,55.51 24.9204,55.4976 24.9141,55.4937 24.912,55.4933 24.9116,55.4929 24.9109,55.4926 24.9102,55.4926 24.9097,55.4927 24.9089,55.493 24.9082,55.4934 24.9077,55.4939 24.9073,55.4946 24.9069,55.4952 24.9067,55.4958 24.9066,55.4966 24.9067,55.4974 24.9069,55.498 24.9073,55.4985 24.9077,55.506 24.9155,55.5104 24.9202,55.5105 24.9203,55.5105 24.9203,55.5105 24.9204,55.5104 24.9204,55.5104 24.9204,55.5103 24.9204,55.5102 24.9204,55.5096 24.9202,55.4968 24.9137,55.4937 24.912,55.4933 24.9115,55.4929 24.911,55.4927 24.9101,55.4926 24.9096,55.4927 24.9089,55.493 24.9083,55.4933 24.9078,55.4938 24.9073,55.4944 24.907,55.4954 24.9067,55.496 24.9066,55.4966 24.9067,55.4974 24.9069,55.498 24.9073,55.4988 24.908,55.5009 24.9102,55.5068 24.9164,55.5102 24.92,55.5106 24.9205,55.5106 24.9205,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.4957 24.9131,55.4938 24.912,55.4933 24.9116,55.4929 24.911,55.4927 24.9105,55.4926 24.9098,55.4926 24.9092,55.4928 24.9086,55.4931 24.908,55.4936 24.9075,55.4941 24.9071,55.4948 24.9068,55.4955 24.9066,55.4962 24.9066,55.497 24.9067,55.4976 24.907,55.4985 24.9076,55.5061 24.9157,55.5103 24.9201,55.5103 24.9201,55.5104 24.9201,55.5104 24.9202,55.5105 24.9203,55.5104 24.9203,55.5104 24.9204,55.5103 24.9204,55.5103 24.9204,55.5091 24.9199,55.4938 24.9121,55.4933 24.9115,55.4929 24.9109,55.4926 24.9102,55.4926 24.9093,55.4928 24.9086,55.4932 24.9079,55.4937 24.9074,55.4937 24.9073,55.4941 24.9071,55.495 24.9068,55.4958 24.9066,55.4967 24.9067,55.4973 24.9069,55.4979 24.9072,55.4985 24.9076,55.5082 24.9178,55.5104 24.9203,55.5105 24.9203,55.5105 24.9203,55.5104 24.9204,55.5104 24.9204,55.5103 24.9205,55.5103 24.9204,55.5101 24.9204,55.51 24.9203,55.5098 24.9202,55.4937 24.9119,55.4932 24.9114,55.4928 24.9108,55.4927 24.9101,55.4926 24.9094,55.4927 24.9088,55.493 24.9082,55.4937 24.9074,55.4943 24.907,55.4949 24.9068,55.4955 24.9066,55.4964 24.9066,55.497 24.9068,55.4979 24.9072,55.4986 24.9077,55.507 24.9166,55.5104 24.9201,55.5105 24.9203,55.5105 24.9203,55.5104 24.9204,55.5104 24.9204,55.5103 24.9204,55.51 24.9203,55.4956 24.913,55.4939 24.9121,55.4932 24.9115,55.4929 24.9109,55.4927 24.9103,55.4926 24.9097,55.4927 24.9089,55.493 24.9083,55.4934 24.9077,55.4941 24.9071,55.4946 24.9069,55.4954 24.9067,55.4962 24.9066,55.4971 24.9068,55.4977 24.907,55.4982 24.9074,55.5056 24.9151,55.5099 24.9197,55.51 24.9198,55.51 24.9198,55.5099 24.9199,55.5098 24.9199,55.5097 24.9199,55.5096 24.9198,55.5095 24.9197,55.5086 24.919,55.5086 24.9189,55.5086 24.9189,55.5087 24.9189,55.5087 24.9189,55.5097 24.9199,55.51 24.92,55.5103 24.9202,55.5105 24.9203,55.5105 24.9204,55.5105 24.9204,55.5105 24.9205,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.5001 24.9153,55.5001 24.9153,55.4938 24.912,55.4932 24.9114,55.4928 24.9106,55.4927 24.9098,55.4928 24.909,55.4931 24.9082,55.4937 24.9075,55.4945 24.907,55.4954 24.9067,55.4964 24.9067,55.4973 24.9069,55.4981 24.9073,55.51 24.9197,55.5104 24.9201,55.5105 24.9202,55.5105 24.9203,55.5105 24.9204,55.5105 24.9204,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.4966 24.9136,55.4938 24.9121,55.4931 24.9114,55.4928 24.9109,55.4926 24.9101,55.4926 24.9095,55.4928 24.9087,55.493 24.9082,55.4935 24.9076,55.4941 24.9071,55.4948 24.9068,55.4956 24.9066,55.4961 24.9066,55.497 24.9068,55.4976 24.907,55.4982 24.9073,55.5051 24.9146,55.5099 24.9197,55.5099 24.9198,55.5099 24.9199,55.5098 24.9199,55.5097 24.9199,55.509 24.9193,55.5084 24.9188,55.5083 24.9187,55.5083 24.9188,55.5082 24.9188,55.5081 24.9188,55.5081 24.9188,55.508 24.9188,55.508 24.9188,55.5079 24.9189,55.5078 24.9189,55.5075 24.9187,55.5072 24.9186,55.5071 24.9186,55.507 24.9186,55.507 24.9187,55.5069 24.9187,55.5069 24.9187,55.5064 24.9185,55.4937 24.9119,55.4931 24.9112,55.4928 24.9107,55.4927 24.9101,55.4927 24.9093,55.4929 24.9085,55.4932 24.9081,55.4937 24.9075,55.4944 24.907,55.4952 24.9067,55.496 24.9066,55.4968 24.9068,55.4976 24.907,55.4983 24.9075,55.5075 24.9171,55.5101 24.9198,55.5101 24.9199,55.5101 24.9199,55.5101 24.92,55.51 24.92,55.5094 24.9199,55.4954 24.913,55.494 24.9121,55.4936 24.9117,55.4935 24.9116,55.4935 24.9116,55.4935 24.9116,55.4932 24.9114,55.493 24.9111,55.4928 24.9107,55.4927 24.9102,55.4927 24.9095,55.4929 24.9087,55.4933 24.908,55.4938 24.9074,55.4945 24.907,55.4953 24.9067,55.4961 24.9067,55.4969 24.9068,55.4976 24.9071,55.4983 24.9075,55.5093 24.9189,55.5106 24.9203,55.5106 24.9204,55.5106 24.9204,55.5105 24.9204,55.5104 24.9205,55.5103 24.9205,55.4963 24.9134,55.4938 24.9121,55.4933 24.9116,55.4929 24.9111,55.4927 24.9104,55.4926 24.9099,55.4927 24.909,55.4929 24.9084,55.4933 24.9078,55.4939 24.9073,55.4945 24.9069,55.4952 24.9067,55.4961 24.9066,55.4968 24.9067,55.4973 24.9069,55.4981 24.9073,55.4987 24.9079,55.5069 24.9165,55.5085 24.9182,55.5085 24.9182,55.51 24.9197,55.5101 24.9198,55.5101 24.9199,55.5101 24.92,55.51 24.9201,55.5099 24.9201,55.5098 24.9202,55.5097 24.9201,55.5094 24.92,55.4937 24.9119,55.4932 24.9114,55.4928 24.9107,55.4927 24.9103,55.4926 24.9096,55.4927 24.909,55.493 24.9083,55.4935 24.9077,55.4941 24.9072,55.4948 24.9068,55.4955 24.9067,55.4962 24.9067,55.4971 24.9068,55.4976 24.907,55.4982 24.9074,55.505 24.9146,55.5105 24.9203,55.5105 24.9203,55.5105 24.9204,55.5105 24.9205,55.5104 24.9205,55.5104 24.9205,55.5102 24.9204,55.5058 24.9182,55.4982 24.9143,55.4937 24.912,55.4933 24.9116,55.493 24.9111,55.4927 24.9102,55.4926 24.9096,55.4927 24.9091,55.493 24.9083,55.4935 24.9076,55.494 24.9072,55.4948 24.9069,55.4956 24.9067,55.4964 24.9067,55.4972 24.9068,55.4976 24.907,55.4982 24.9074,55.4998 24.909,55.4997 24.9089,55.4997 24.9089,55.4997 24.9089,55.5085 24.9181,55.5101 24.9198,55.5103 24.9201,55.5104 24.9202,55.5104 24.9202,55.5104 24.9203,55.5104 24.9203,55.5103 24.9203,55.5103 24.9204,55.5102 24.9204,55.51 24.9203,55.4978 24.9141,55.4938 24.912,55.4934 24.9116,55.4929 24.9109,55.4927 24.9104,55.4926 24.9097,55.4927 24.9089,55.4929 24.9084,55.4933 24.9079,55.4939 24.9073,55.4946 24.9069,55.4951 24.9067,55.4958 24.9066,55.4965 24.9067,55.4974 24.9069,55.498 24.9072,55.4986 24.9077,55.5063 24.9158,55.51 24.9198,55.5103 24.92,55.5103 24.9201,55.5103 24.9201,55.5103 24.9202,55.5102 24.9203,55.5102 24.9203,55.5101 24.9203,55.5099 24.9203,55.4971 24.9138,55.4938 24.912,55.4934 24.9117,55.493 24.911,55.4927 24.9105,55.4926 24.9098,55.4927 24.9092,55.4929 24.9086,55.4932 24.908,55.4937 24.9074,55.4941 24.9071,55.4948 24.9068,55.4956 24.9066,55.4964 24.9066,55.497 24.9067,55.4977 24.9071,55.4983 24.9074,55.5052 24.9146,55.5065 24.916,55.5106 24.9204,55.5107 24.9204,55.5106 24.9205,55.5106 24.9205,55.5105 24.9205,55.5104 24.9205,55.5104 24.9205,55.4973 24.9139,55.4937 24.912,55.4932 24.9114,55.4929 24.9108,55.4927 24.9102,55.4926 24.9097,55.4928 24.9089,55.493 24.9084,55.4933 24.9079,55.4938 24.9074,55.4943 24.907,55.4951 24.9067,55.4957 24.9066,55.4965 24.9067,55.4972 24.9068,55.4978 24.9071,55.4984 24.9075,55.5048 24.9144,55.5061 24.9157,55.5061 24.9157,55.5103 24.92,55.5104 24.9201,55.5104 24.9202,55.5104 24.9203,55.5103 24.9203,55.5102 24.9204,55.5102 24.9203,55.4946 24.9125,55.4936 24.9117,55.4931 24.9111,55.4928 24.9103,55.4927 24.9095,55.4928 24.9088,55.4932 24.9081,55.4938 24.9074,55.4944 24.907,55.4952 24.9067,55.4959 24.9066,55.4966 24.9067,55.4974 24.9069,55.498 24.9073,55.5055 24.9151,55.5105 24.9203,55.5104 24.9204,55.5103 24.9204,55.5101 24.9204,55.498 24.9143,55.4939 24.9121,55.4932 24.9115,55.4928 24.9108,55.4927 24.9102,55.4926 24.9095,55.4927 24.909,55.4929 24.9084,55.4932 24.9079,55.4937 24.9074,55.4943 24.907,55.4949 24.9068,55.4956 24.9066,55.4964 24.9066,55.4971 24.9068,55.4977 24.907,55.4983 24.9075,55.5058 24.9153,55.5108 24.9206,55.5116 24.921,55.5119 24.9212,55.512 24.9213,55.5121 24.9215,55.5121 24.9216,55.512 24.9217,55.5117 24.922,55.5116 24.9219,55.511 24.9217,55.5109 24.9217,55.5108 24.9218,55.5107 24.9218,55.5106 24.922,55.5107 24.9218,55.5108 24.9218,55.5108 24.9217,55.5107 24.9215,55.5104 24.9211,55.5097 24.9205,55.5096 24.9205,55.5095 24.9205,55.5094 24.9205,55.5094 24.9207,55.5091 24.921,55.5089 24.9211,55.5089 24.9211,55.5089 24.9211,55.5091 24.9211,55.5092 24.9211,55.5092 24.9211,55.5093 24.9207,55.5094 24.9206,55.5094 24.9206,55.5094 24.9205,55.5092 24.9204,55.5077 24.9195,55.5077 24.9195,55.5076 24.9196,55.5077 24.9196,55.509 24.9202,55.509 24.9202,55.509 24.9202,55.5109 24.9214,55.5111 24.9216,55.5111 24.9216,55.5108 24.9218,55.5107 24.9219,55.5106 24.9219,55.5106 24.9218,55.5107 24.9217,55.5108 24.9217,55.5108 24.9217,55.5109 24.9217,55.5117 24.9219,55.5118 24.9219,55.5119 24.9219,55.512 24.9219,55.512 24.9218,55.5121 24.9217,55.5121 24.9215,55.512 24.9212,55.5119 24.9212,55.5118 24.9211,55.5106 24.9206,55.5105 24.9206,55.5105 24.9206,55.5105 24.9206,55.5105 24.9205,55.5105 24.9204,55.5105 24.9204,55.5106 24.9205,55.5108 24.9206,55.5109 24.9207,55.5113 24.9209,55.5119 24.9212,55.512 24.9212,55.512 24.9213,55.5121 24.9215,55.5121 24.9215,55.5122 24.9216,55.5122 24.9216,55.5124 24.9215,55.5125 24.9214,55.5126 24.9213,55.5127 24.9213,55.5127 24.9213,55.5127 24.9213,55.5127 24.9214,55.5127 24.9214,55.5127 24.9214,55.5126 24.9214,55.5126 24.9213,55.5126 24.9212,55.5125 24.9211,55.5125 24.9212,55.5125 24.9212,55.5125 24.9213,55.5125 24.9214,55.5124 24.9215,55.5117 24.9219,55.5116 24.9219,55.5115 24.9219,55.5111 24.9217,55.5104 24.9212,55.5102 24.9211,55.5102 24.9211,55.5102 24.9211,55.5102 24.921,55.5102 24.9209,55.5101 24.9208,55.5101 24.9208,55.5098 24.9206,55.4964 24.9138,55.4946 24.9129,55.4941 24.9128,55.4938 24.9126,55.4937 24.9126,55.4937 24.9126,55.4937 24.9126,55.4936 24.9126,55.4935 24.9123,55.4934 24.9122,55.4934 24.9121,55.4933 24.912,55.4931 24.9119,55.493 24.9119,55.4929 24.9119,55.4928 24.9119,55.4925 24.9124,55.4924 24.9124,55.4922 24.9124,55.4921 24.9125,55.492 24.9125,55.4906 24.9147,55.4906 24.9148,55.4906 24.9149,55.4922 24.9157,55.4922 24.9158,55.4908 24.9179,55.4907 24.9179,55.4906 24.9179,55.4899 24.9176,55.4898 24.9176,55.4897 24.9177,55.4889 24.919,55.4888 24.919,55.4887 24.919,55.4887 24.919,55.4879 24.9185,55.4879 24.9184,55.4879 24.9183,55.488 24.9181,55.4886 24.9172,55.4887 24.9171,55.4888 24.9171,55.4894 24.9173,55.4906 24.9179,55.4907 24.9179,55.4908 24.9179,55.4922 24.9158,55.4921 24.9157,55.4906 24.9148,55.4906 24.9148,55.4906 24.9147,55.492 24.9125,55.4921 24.9124,55.4922 24.9124,55.4924 24.9124,55.4925 24.9124,55.4926 24.9123,55.4929 24.9118,55.4929 24.9117,55.4923 24.91,55.4923 24.9094,55.4924 24.9088,55.4926 24.9082,55.4932 24.9075,55.4937 24.907,55.4945 24.9066,55.4951 24.9064,55.4958 24.9063,55.4965 24.9063,55.4975 24.9066,55.4982 24.907,55.499 24.9077,55.5109 24.9203,55.5112 24.9206,55.5113 24.9207,55.5114 24.9207,55.5117 24.9207,55.5119 24.9206,55.5121 24.9206,55.5123 24.9207,55.5124 24.9207,55.513 24.9212,55.513 24.9213,55.513 24.9215,55.5129 24.9215,55.5128 24.9216,55.5127 24.9216,55.5126 24.9216,55.5125 24.9215,55.5126 24.9214,55.5126 24.9214,55.5127 24.9213,55.5127 24.9213,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5126 24.9212,55.5125 24.9212,55.5125 24.9214,55.5125 24.9214,55.5124 24.9214,55.5123 24.9214,55.5108 24.9207,55.5106 24.9206,55.5106 24.9206,55.5106 24.9206,55.5107 24.9206,55.5109 24.9207,55.511 24.9208,55.512 24.9213,55.5121 24.9213,55.5121 24.9214,55.5121 24.9215,55.5119 24.9217,55.5118 24.9218,55.5118 24.9218,55.5117 24.9217,55.5117 24.9217,55.5116 24.9216,55.5117 24.9215,55.5117 24.9214,55.5119 24.9213,55.5119 24.9212,55.5119 24.9212,55.511 24.9208,55.5074 24.917,55.498 24.9073,55.4975 24.907,55.4968 24.9068,55.4966 24.9067,55.4955 24.9067,55.4947 24.9069,55.4938 24.9073,55.4934 24.9077,55.4931 24.9081,55.4927 24.9089,55.4926 24.9095,55.4926 24.9101,55.4929 24.9109,55.4933 24.9116,55.494 24.9122,55.5032 24.9168,55.5042 24.9173,55.5044 24.9175,55.5119 24.9212,55.512 24.9213,55.512 24.9215,55.512 24.9216,55.5118 24.9219,55.5117 24.9219,55.5116 24.9219,55.511 24.9215,55.5097 24.9207,55.5096 24.9207,55.5094 24.9207,55.5093 24.9207,55.5093 24.9208,55.5092 24.921,55.5092 24.921,55.5092 24.9211,55.5092 24.9211,55.5092 24.9211,55.5092 24.9211,55.509 24.9212,55.509 24.9211,55.509 24.9211,55.509 24.921,55.5093 24.9208,55.5094 24.9207,55.5096 24.9207,55.5097 24.9207,55.5106 24.9213,55.511 24.9217,55.5112 24.9221,55.5112 24.9222,55.5112 24.9223,55.5026 24.9357,55.495 24.9475,55.495 24.9476,55.4951 24.9477,55.4954 24.948,55.4972 24.9496,55.4973 24.9498,55.4973 24.9499,55.4965 24.9512,55.4965 24.9514,55.4966 24.9514,55.4967 24.9515,55.497 24.9518,55.5001 24.9535,55.5003 24.9536,55.5006 24.9536,55.5007 24.9535,55.5009 24.9534,55.501 24.9534,55.501 24.9535,55.5009 24.9536,55.5005 24.9536,55.5003 24.9536,55.5 24.9536,55.4995 24.9534,55.4993 24.9534,55.4991 24.9533,55.4978 24.9525,55.4977 24.9525,55.4976 24.9526,55.4902 24.9642,55.4895 24.9676,55.4895 24.9678,55.4894 24.9679,55.4893 24.968,55.4885 24.969,55.4883 24.9692,55.4881 24.9693,55.4861 24.9694,55.4859 24.9695,55.4791 24.9789,55.4789 24.979,55.4788 24.9789,55.4769 24.9778,55.4766 24.9775,55.4766 24.9773,55.4767 24.9769,55.4769 24.9765,55.477 24.9764,55.477 24.9764)')`
`
When using SELECT geometry::STGeomFromText(#string, 4326); it throws a memory error when going to the geography tab.
When doing SELECT geometry::STGeomFromText(#string, 4326).MakeValid(); it crashes the SQL Server engine for 3-5 minutes.
I tried everything to work around this but I'm kinda stuck.
I want to have some sort of way to make sure it does not crash processing and make it work.
Live some servers are on SQL Server 2008R2 and issue still seems to be there on SQL Server 2019

CREATE FUNCTION [dbo].UDF_CreateList(#SplitOn char(1), #List varchar(MAX))
RETURNS TABLE
AS
RETURN
(
SELECT
ROW_NUMBER() OVER(ORDER BY number) AS RowNumber
,LTRIM(RTRIM(SUBSTRING(ListValue, number+1, CHARINDEX(#SplitOn, ListValue, number+1)-number - 1))) AS ListValue
FROM (
SELECT #SplitOn + #List + #SplitOn AS ListValue
) AS InnerQuery
INNER JOIN master.dbo.spt_values n ON n.Number < LEN(InnerQuery.ListValue)
WHERE SUBSTRING(ListValue, number, 1) = #SplitOn
AND n.type = 'P'
);
CREATE FUNCTION [dbo].[UDF_CreateGeometryFromString](#Tripstring VARCHAR(max))
RETURNS GEOMETRY
AS
BEGIN
DECLARE #g GEOMETRY = geometry::STGeomFromText(#Tripstring, 4326);
IF #g.STIsValid() = 1
BEGIN
RETURN #g.MakeValid();
END
ELSE
BEGIN
SET #Tripstring = Replace(#Tripstring, 'LINESTRING(', '');
SET #Tripstring = Replace(#Tripstring, ')', '');
DECLARE #Temp TABLE
(
id INT IDENTITY(1, 1) PRIMARY KEY,
ListValue NVARCHAR(100)
);
DECLARE #TempMultiline TABLE
(
id INT IDENTITY(1, 1) PRIMARY KEY,
ListValue NVARCHAR(100)
);
INSERT INTO #Temp
(ListValue)
SELECT ListValue
FROM dbo.Udf_createlist(',', #Tripstring);
DECLARE #resultCount INT = (SELECT Count(*)
FROM #Temp);
IF ( #resultCount < 2 )
BEGIN
RETURN NULL;
END
DECLARE #return NVARCHAR(MAX) = Cast(#resultCount AS NVARCHAR(MAX));
INSERT INTO #TempMultiline
(ListValue)
SELECT '(' + t1.ListValue + ',' + t2.ListValue + ')'
FROM (SELECT id,
ListValue,
Row_number()
OVER(
ORDER BY id) AS Inc
FROM #Temp) t1
LEFT JOIN (SELECT id,
ListValue,
Row_number()
OVER(
ORDER BY id) - 1 AS Inc
FROM #Temp) t2
ON t2.Inc = t1.Inc
DECLARE #multilinestring NVARCHAR(max) = 'MULTILINESTRING' + '('
+ Substring((SELECT ',' + ListValue FROM #TempMultiline FOR XML PATH('')), 2, 9999) + ')';
DECLARE #g4 GEOMETRY = geometry::STGeomFromText(#multilinestring, 4326).MakeValid();
RETURN #g4;
END
RETURN NULL;
END
DECLARE #string nvarchar(max) = ('LINESTRING(55.5104 24.9205,55.5104 24.9205,55.5105 24.9205,55.5105 24.9204,55.5105 24.9204,55.5105 24.9203,55.5104 24.9201,55.5049 24.9143,55.505 24.9144,55.5049 24.9143,55.4981 24.9072,55.4975 24.9069,55.4968 24.9067,55.4961 24.9066,55.4952 24.9066,55.4944 24.9069,55.494 24.9072,55.4934 24.9076,55.4929 24.9083,55.4927 24.9088,55.4926 24.9096,55.4926 24.9096,55.4926 24.9101,55.4928 24.9108,55.4931 24.9114,55.4936 24.9119,55.4936 24.9119,55.4938 24.9121,55.4951 24.9128,55.4948 24.9126,55.4949 24.9127,55.4967 24.9136,55.51 24.9203,55.5103 24.9204,55.5104 24.9203,55.5104 24.9203,55.5104 24.9202,55.51 24.9197,55.5039 24.9133,55.5039 24.9133,55.5039 24.9133,55.5004 24.9096,55.4982 24.9073,55.4976 24.907,55.4967 24.9067,55.496 24.9066,55.4954 24.9066,55.4944 24.9069,55.4939 24.9072,55.4932 24.9079,55.4929 24.9085,55.4927 24.9091,55.4926 24.9097,55.4927 24.9104,55.4929 24.911,55.4933 24.9115,55.494 24.9122,55.5069 24.9187,55.5091 24.9198,55.5093 24.9199,55.5094 24.9198,55.5094 24.9198,55.5094 24.9197,55.5093 24.9195,55.509 24.9193,55.509 24.9192,55.509 24.9192,55.509 24.9192,55.5089 24.9193,55.509 24.9194,55.5105 24.9203,55.5107 24.9204,55.5107 24.9204,55.5107 24.9204,55.5107 24.9204,55.5107 24.9204,55.5106 24.9205,55.5104 24.9204,55.5098 24.9201,55.4945 24.9124,55.4937 24.9119,55.4932 24.9113,55.4928 24.9106,55.4926 24.9099,55.4927 24.9091,55.4929 24.9084,55.4933 24.9078,55.4939 24.9073,55.4945 24.9069,55.4952 24.9067,55.4959 24.9066,55.4966 24.9067,55.4973 24.9069,55.4979 24.9072,55.4987 24.9079,55.5046 24.914,55.5101 24.9198,55.5104 24.9202,55.5105 24.9203,55.5105 24.9203,55.5105 24.9204,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.5102 24.9204,55.5102 24.9204,55.5048 24.9177,55.4936 24.9119,55.4933 24.9115,55.493 24.9111,55.4926 24.9101,55.4926 24.9096,55.4927 24.9089,55.493 24.9082,55.4935 24.9076,55.494 24.9072,55.4949 24.9068,55.4954 24.9066,55.4963 24.9066,55.4971 24.9068,55.4978 24.9072,55.4985 24.9077,55.5104 24.9202,55.5104 24.9202,55.5104 24.9203,55.5104 24.9203,55.5104 24.9204,55.5103 24.9204,55.5097 24.9201,55.5086 24.9196,55.5021 24.9163,55.495 24.9126,55.4947 24.9124,55.4944 24.9123,55.4942 24.9122,55.4938 24.912,55.4933 24.9115,55.493 24.911,55.4927 24.9103,55.4927 24.9095,55.4928 24.9087,55.4933 24.9079,55.4939 24.9073,55.4948 24.9069,55.4957 24.9066,55.4966 24.9067,55.4974 24.9069,55.4981 24.9073,55.5091 24.9188,55.5101 24.9199,55.5101 24.92,55.51 24.92,55.51 24.92,55.5099 24.9201,55.5097 24.92,55.5095 24.92,55.4957 24.9131,55.4939 24.9122,55.4933 24.9117,55.493 24.9112,55.4927 24.9106,55.4926 24.9099,55.4926 24.9091,55.4929 24.9084,55.4932 24.9079,55.4938 24.9073,55.4943 24.907,55.4951 24.9067,55.496 24.9066,55.4966 24.9067,55.4973 24.9069,55.4981 24.9073,55.5032 24.9126,55.5105 24.9203,55.5105 24.9203,55.5106 24.9204,55.5106 24.9204,55.5105 24.9204,55.5104 24.9205,55.5103 24.9205,55.5101 24.9204,55.497 24.9138,55.4938 24.9121,55.4932 24.9115,55.4929 24.911,55.4926 24.9104,55.4925 24.9098,55.4926 24.9092,55.4927 24.9087,55.4931 24.9081,55.4936 24.9074,55.494 24.9072,55.4947 24.9068,55.4954 24.9066,55.496 24.9066,55.4967 24.9067,55.4974 24.9069,55.4982 24.9074,55.5046 24.9141,55.5046 24.9141,55.5046 24.9141,55.5046 24.9141,55.5048 24.9143,55.5104 24.9203,55.5105 24.9205,55.5104 24.9205,55.5104 24.9205,55.5103 24.9205,55.5045 24.9175,55.4938 24.9119,55.4931 24.9112,55.4927 24.9104,55.4926 24.9094,55.4928 24.9085,55.4934 24.9078,55.4941 24.9072,55.4949 24.9068,55.4959 24.9067,55.4968 24.9068,55.4977 24.9071,55.4984 24.9077,55.509 24.9188,55.5099 24.9198,55.5103 24.9202,55.5103 24.9203,55.5103 24.9203,55.5103 24.9203,55.5102 24.9204,55.5101 24.9204,55.51 24.9204,55.4976 24.9141,55.4937 24.912,55.4933 24.9116,55.4929 24.9109,55.4926 24.9102,55.4926 24.9097,55.4927 24.9089,55.493 24.9082,55.4934 24.9077,55.4939 24.9073,55.4946 24.9069,55.4952 24.9067,55.4958 24.9066,55.4966 24.9067,55.4974 24.9069,55.498 24.9073,55.4985 24.9077,55.506 24.9155,55.5104 24.9202,55.5105 24.9203,55.5105 24.9203,55.5105 24.9204,55.5104 24.9204,55.5104 24.9204,55.5103 24.9204,55.5102 24.9204,55.5096 24.9202,55.4968 24.9137,55.4937 24.912,55.4933 24.9115,55.4929 24.911,55.4927 24.9101,55.4926 24.9096,55.4927 24.9089,55.493 24.9083,55.4933 24.9078,55.4938 24.9073,55.4944 24.907,55.4954 24.9067,55.496 24.9066,55.4966 24.9067,55.4974 24.9069,55.498 24.9073,55.4988 24.908,55.5009 24.9102,55.5068 24.9164,55.5102 24.92,55.5106 24.9205,55.5106 24.9205,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.4957 24.9131,55.4938 24.912,55.4933 24.9116,55.4929 24.911,55.4927 24.9105,55.4926 24.9098,55.4926 24.9092,55.4928 24.9086,55.4931 24.908,55.4936 24.9075,55.4941 24.9071,55.4948 24.9068,55.4955 24.9066,55.4962 24.9066,55.497 24.9067,55.4976 24.907,55.4985 24.9076,55.5061 24.9157,55.5103 24.9201,55.5103 24.9201,55.5104 24.9201,55.5104 24.9202,55.5105 24.9203,55.5104 24.9203,55.5104 24.9204,55.5103 24.9204,55.5103 24.9204,55.5091 24.9199,55.4938 24.9121,55.4933 24.9115,55.4929 24.9109,55.4926 24.9102,55.4926 24.9093,55.4928 24.9086,55.4932 24.9079,55.4937 24.9074,55.4937 24.9073,55.4941 24.9071,55.495 24.9068,55.4958 24.9066,55.4967 24.9067,55.4973 24.9069,55.4979 24.9072,55.4985 24.9076,55.5082 24.9178,55.5104 24.9203,55.5105 24.9203,55.5105 24.9203,55.5104 24.9204,55.5104 24.9204,55.5103 24.9205,55.5103 24.9204,55.5101 24.9204,55.51 24.9203,55.5098 24.9202,55.4937 24.9119,55.4932 24.9114,55.4928 24.9108,55.4927 24.9101,55.4926 24.9094,55.4927 24.9088,55.493 24.9082,55.4937 24.9074,55.4943 24.907,55.4949 24.9068,55.4955 24.9066,55.4964 24.9066,55.497 24.9068,55.4979 24.9072,55.4986 24.9077,55.507 24.9166,55.5104 24.9201,55.5105 24.9203,55.5105 24.9203,55.5104 24.9204,55.5104 24.9204,55.5103 24.9204,55.51 24.9203,55.4956 24.913,55.4939 24.9121,55.4932 24.9115,55.4929 24.9109,55.4927 24.9103,55.4926 24.9097,55.4927 24.9089,55.493 24.9083,55.4934 24.9077,55.4941 24.9071,55.4946 24.9069,55.4954 24.9067,55.4962 24.9066,55.4971 24.9068,55.4977 24.907,55.4982 24.9074,55.5056 24.9151,55.5099 24.9197,55.51 24.9198,55.51 24.9198,55.5099 24.9199,55.5098 24.9199,55.5097 24.9199,55.5096 24.9198,55.5095 24.9197,55.5086 24.919,55.5086 24.9189,55.5086 24.9189,55.5087 24.9189,55.5087 24.9189,55.5097 24.9199,55.51 24.92,55.5103 24.9202,55.5105 24.9203,55.5105 24.9204,55.5105 24.9204,55.5105 24.9205,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.5001 24.9153,55.5001 24.9153,55.4938 24.912,55.4932 24.9114,55.4928 24.9106,55.4927 24.9098,55.4928 24.909,55.4931 24.9082,55.4937 24.9075,55.4945 24.907,55.4954 24.9067,55.4964 24.9067,55.4973 24.9069,55.4981 24.9073,55.51 24.9197,55.5104 24.9201,55.5105 24.9202,55.5105 24.9203,55.5105 24.9204,55.5105 24.9204,55.5105 24.9205,55.5104 24.9205,55.5103 24.9205,55.4966 24.9136,55.4938 24.9121,55.4931 24.9114,55.4928 24.9109,55.4926 24.9101,55.4926 24.9095,55.4928 24.9087,55.493 24.9082,55.4935 24.9076,55.4941 24.9071,55.4948 24.9068,55.4956 24.9066,55.4961 24.9066,55.497 24.9068,55.4976 24.907,55.4982 24.9073,55.5051 24.9146,55.5099 24.9197,55.5099 24.9198,55.5099 24.9199,55.5098 24.9199,55.5097 24.9199,55.509 24.9193,55.5084 24.9188,55.5083 24.9187,55.5083 24.9188,55.5082 24.9188,55.5081 24.9188,55.5081 24.9188,55.508 24.9188,55.508 24.9188,55.5079 24.9189,55.5078 24.9189,55.5075 24.9187,55.5072 24.9186,55.5071 24.9186,55.507 24.9186,55.507 24.9187,55.5069 24.9187,55.5069 24.9187,55.5064 24.9185,55.4937 24.9119,55.4931 24.9112,55.4928 24.9107,55.4927 24.9101,55.4927 24.9093,55.4929 24.9085,55.4932 24.9081,55.4937 24.9075,55.4944 24.907,55.4952 24.9067,55.496 24.9066,55.4968 24.9068,55.4976 24.907,55.4983 24.9075,55.5075 24.9171,55.5101 24.9198,55.5101 24.9199,55.5101 24.9199,55.5101 24.92,55.51 24.92,55.5094 24.9199,55.4954 24.913,55.494 24.9121,55.4936 24.9117,55.4935 24.9116,55.4935 24.9116,55.4935 24.9116,55.4932 24.9114,55.493 24.9111,55.4928 24.9107,55.4927 24.9102,55.4927 24.9095,55.4929 24.9087,55.4933 24.908,55.4938 24.9074,55.4945 24.907,55.4953 24.9067,55.4961 24.9067,55.4969 24.9068,55.4976 24.9071,55.4983 24.9075,55.5093 24.9189,55.5106 24.9203,55.5106 24.9204,55.5106 24.9204,55.5105 24.9204,55.5104 24.9205,55.5103 24.9205,55.4963 24.9134,55.4938 24.9121,55.4933 24.9116,55.4929 24.9111,55.4927 24.9104,55.4926 24.9099,55.4927 24.909,55.4929 24.9084,55.4933 24.9078,55.4939 24.9073,55.4945 24.9069,55.4952 24.9067,55.4961 24.9066,55.4968 24.9067,55.4973 24.9069,55.4981 24.9073,55.4987 24.9079,55.5069 24.9165,55.5085 24.9182,55.5085 24.9182,55.51 24.9197,55.5101 24.9198,55.5101 24.9199,55.5101 24.92,55.51 24.9201,55.5099 24.9201,55.5098 24.9202,55.5097 24.9201,55.5094 24.92,55.4937 24.9119,55.4932 24.9114,55.4928 24.9107,55.4927 24.9103,55.4926 24.9096,55.4927 24.909,55.493 24.9083,55.4935 24.9077,55.4941 24.9072,55.4948 24.9068,55.4955 24.9067,55.4962 24.9067,55.4971 24.9068,55.4976 24.907,55.4982 24.9074,55.505 24.9146,55.5105 24.9203,55.5105 24.9203,55.5105 24.9204,55.5105 24.9205,55.5104 24.9205,55.5104 24.9205,55.5102 24.9204,55.5058 24.9182,55.4982 24.9143,55.4937 24.912,55.4933 24.9116,55.493 24.9111,55.4927 24.9102,55.4926 24.9096,55.4927 24.9091,55.493 24.9083,55.4935 24.9076,55.494 24.9072,55.4948 24.9069,55.4956 24.9067,55.4964 24.9067,55.4972 24.9068,55.4976 24.907,55.4982 24.9074,55.4998 24.909,55.4997 24.9089,55.4997 24.9089,55.4997 24.9089,55.5085 24.9181,55.5101 24.9198,55.5103 24.9201,55.5104 24.9202,55.5104 24.9202,55.5104 24.9203,55.5104 24.9203,55.5103 24.9203,55.5103 24.9204,55.5102 24.9204,55.51 24.9203,55.4978 24.9141,55.4938 24.912,55.4934 24.9116,55.4929 24.9109,55.4927 24.9104,55.4926 24.9097,55.4927 24.9089,55.4929 24.9084,55.4933 24.9079,55.4939 24.9073,55.4946 24.9069,55.4951 24.9067,55.4958 24.9066,55.4965 24.9067,55.4974 24.9069,55.498 24.9072,55.4986 24.9077,55.5063 24.9158,55.51 24.9198,55.5103 24.92,55.5103 24.9201,55.5103 24.9201,55.5103 24.9202,55.5102 24.9203,55.5102 24.9203,55.5101 24.9203,55.5099 24.9203,55.4971 24.9138,55.4938 24.912,55.4934 24.9117,55.493 24.911,55.4927 24.9105,55.4926 24.9098,55.4927 24.9092,55.4929 24.9086,55.4932 24.908,55.4937 24.9074,55.4941 24.9071,55.4948 24.9068,55.4956 24.9066,55.4964 24.9066,55.497 24.9067,55.4977 24.9071,55.4983 24.9074,55.5052 24.9146,55.5065 24.916,55.5106 24.9204,55.5107 24.9204,55.5106 24.9205,55.5106 24.9205,55.5105 24.9205,55.5104 24.9205,55.5104 24.9205,55.4973 24.9139,55.4937 24.912,55.4932 24.9114,55.4929 24.9108,55.4927 24.9102,55.4926 24.9097,55.4928 24.9089,55.493 24.9084,55.4933 24.9079,55.4938 24.9074,55.4943 24.907,55.4951 24.9067,55.4957 24.9066,55.4965 24.9067,55.4972 24.9068,55.4978 24.9071,55.4984 24.9075,55.5048 24.9144,55.5061 24.9157,55.5061 24.9157,55.5103 24.92,55.5104 24.9201,55.5104 24.9202,55.5104 24.9203,55.5103 24.9203,55.5102 24.9204,55.5102 24.9203,55.4946 24.9125,55.4936 24.9117,55.4931 24.9111,55.4928 24.9103,55.4927 24.9095,55.4928 24.9088,55.4932 24.9081,55.4938 24.9074,55.4944 24.907,55.4952 24.9067,55.4959 24.9066,55.4966 24.9067,55.4974 24.9069,55.498 24.9073,55.5055 24.9151,55.5105 24.9203,55.5104 24.9204,55.5103 24.9204,55.5101 24.9204,55.498 24.9143,55.4939 24.9121,55.4932 24.9115,55.4928 24.9108,55.4927 24.9102,55.4926 24.9095,55.4927 24.909,55.4929 24.9084,55.4932 24.9079,55.4937 24.9074,55.4943 24.907,55.4949 24.9068,55.4956 24.9066,55.4964 24.9066,55.4971 24.9068,55.4977 24.907,55.4983 24.9075,55.5058 24.9153,55.5108 24.9206,55.5116 24.921,55.5119 24.9212,55.512 24.9213,55.5121 24.9215,55.5121 24.9216,55.512 24.9217,55.5117 24.922,55.5116 24.9219,55.511 24.9217,55.5109 24.9217,55.5108 24.9218,55.5107 24.9218,55.5106 24.922,55.5107 24.9218,55.5108 24.9218,55.5108 24.9217,55.5107 24.9215,55.5104 24.9211,55.5097 24.9205,55.5096 24.9205,55.5095 24.9205,55.5094 24.9205,55.5094 24.9207,55.5091 24.921,55.5089 24.9211,55.5089 24.9211,55.5089 24.9211,55.5091 24.9211,55.5092 24.9211,55.5092 24.9211,55.5093 24.9207,55.5094 24.9206,55.5094 24.9206,55.5094 24.9205,55.5092 24.9204,55.5077 24.9195,55.5077 24.9195,55.5076 24.9196,55.5077 24.9196,55.509 24.9202,55.509 24.9202,55.509 24.9202,55.5109 24.9214,55.5111 24.9216,55.5111 24.9216,55.5108 24.9218,55.5107 24.9219,55.5106 24.9219,55.5106 24.9218,55.5107 24.9217,55.5108 24.9217,55.5108 24.9217,55.5109 24.9217,55.5117 24.9219,55.5118 24.9219,55.5119 24.9219,55.512 24.9219,55.512 24.9218,55.5121 24.9217,55.5121 24.9215,55.512 24.9212,55.5119 24.9212,55.5118 24.9211,55.5106 24.9206,55.5105 24.9206,55.5105 24.9206,55.5105 24.9206,55.5105 24.9205,55.5105 24.9204,55.5105 24.9204,55.5106 24.9205,55.5108 24.9206,55.5109 24.9207,55.5113 24.9209,55.5119 24.9212,55.512 24.9212,55.512 24.9213,55.5121 24.9215,55.5121 24.9215,55.5122 24.9216,55.5122 24.9216,55.5124 24.9215,55.5125 24.9214,55.5126 24.9213,55.5127 24.9213,55.5127 24.9213,55.5127 24.9213,55.5127 24.9214,55.5127 24.9214,55.5127 24.9214,55.5126 24.9214,55.5126 24.9213,55.5126 24.9212,55.5125 24.9211,55.5125 24.9212,55.5125 24.9212,55.5125 24.9213,55.5125 24.9214,55.5124 24.9215,55.5117 24.9219,55.5116 24.9219,55.5115 24.9219,55.5111 24.9217,55.5104 24.9212,55.5102 24.9211,55.5102 24.9211,55.5102 24.9211,55.5102 24.921,55.5102 24.9209,55.5101 24.9208,55.5101 24.9208,55.5098 24.9206,55.4964 24.9138,55.4946 24.9129,55.4941 24.9128,55.4938 24.9126,55.4937 24.9126,55.4937 24.9126,55.4937 24.9126,55.4936 24.9126,55.4935 24.9123,55.4934 24.9122,55.4934 24.9121,55.4933 24.912,55.4931 24.9119,55.493 24.9119,55.4929 24.9119,55.4928 24.9119,55.4925 24.9124,55.4924 24.9124,55.4922 24.9124,55.4921 24.9125,55.492 24.9125,55.4906 24.9147,55.4906 24.9148,55.4906 24.9149,55.4922 24.9157,55.4922 24.9158,55.4908 24.9179,55.4907 24.9179,55.4906 24.9179,55.4899 24.9176,55.4898 24.9176,55.4897 24.9177,55.4889 24.919,55.4888 24.919,55.4887 24.919,55.4887 24.919,55.4879 24.9185,55.4879 24.9184,55.4879 24.9183,55.488 24.9181,55.4886 24.9172,55.4887 24.9171,55.4888 24.9171,55.4894 24.9173,55.4906 24.9179,55.4907 24.9179,55.4908 24.9179,55.4922 24.9158,55.4921 24.9157,55.4906 24.9148,55.4906 24.9148,55.4906 24.9147,55.492 24.9125,55.4921 24.9124,55.4922 24.9124,55.4924 24.9124,55.4925 24.9124,55.4926 24.9123,55.4929 24.9118,55.4929 24.9117,55.4923 24.91,55.4923 24.9094,55.4924 24.9088,55.4926 24.9082,55.4932 24.9075,55.4937 24.907,55.4945 24.9066,55.4951 24.9064,55.4958 24.9063,55.4965 24.9063,55.4975 24.9066,55.4982 24.907,55.499 24.9077,55.5109 24.9203,55.5112 24.9206,55.5113 24.9207,55.5114 24.9207,55.5117 24.9207,55.5119 24.9206,55.5121 24.9206,55.5123 24.9207,55.5124 24.9207,55.513 24.9212,55.513 24.9213,55.513 24.9215,55.5129 24.9215,55.5128 24.9216,55.5127 24.9216,55.5126 24.9216,55.5125 24.9215,55.5126 24.9214,55.5126 24.9214,55.5127 24.9213,55.5127 24.9213,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5127 24.9212,55.5126 24.9212,55.5125 24.9212,55.5125 24.9214,55.5125 24.9214,55.5124 24.9214,55.5123 24.9214,55.5108 24.9207,55.5106 24.9206,55.5106 24.9206,55.5106 24.9206,55.5107 24.9206,55.5109 24.9207,55.511 24.9208,55.512 24.9213,55.5121 24.9213,55.5121 24.9214,55.5121 24.9215,55.5119 24.9217,55.5118 24.9218,55.5118 24.9218,55.5117 24.9217,55.5117 24.9217,55.5116 24.9216,55.5117 24.9215,55.5117 24.9214,55.5119 24.9213,55.5119 24.9212,55.5119 24.9212,55.511 24.9208,55.5074 24.917,55.498 24.9073,55.4975 24.907,55.4968 24.9068,55.4966 24.9067,55.4955 24.9067,55.4947 24.9069,55.4938 24.9073,55.4934 24.9077,55.4931 24.9081,55.4927 24.9089,55.4926 24.9095,55.4926 24.9101,55.4929 24.9109,55.4933 24.9116,55.494 24.9122,55.5032 24.9168,55.5042 24.9173,55.5044 24.9175,55.5119 24.9212,55.512 24.9213,55.512 24.9215,55.512 24.9216,55.5118 24.9219,55.5117 24.9219,55.5116 24.9219,55.511 24.9215,55.5097 24.9207,55.5096 24.9207,55.5094 24.9207,55.5093 24.9207,55.5093 24.9208,55.5092 24.921,55.5092 24.921,55.5092 24.9211,55.5092 24.9211,55.5092 24.9211,55.5092 24.9211,55.509 24.9212,55.509 24.9211,55.509 24.9211,55.509 24.921,55.5093 24.9208,55.5094 24.9207,55.5096 24.9207,55.5097 24.9207,55.5106 24.9213,55.511 24.9217,55.5112 24.9221,55.5112 24.9222,55.5112 24.9223,55.5026 24.9357,55.495 24.9475,55.495 24.9476,55.4951 24.9477,55.4954 24.948,55.4972 24.9496,55.4973 24.9498,55.4973 24.9499,55.4965 24.9512,55.4965 24.9514,55.4966 24.9514,55.4967 24.9515,55.497 24.9518,55.5001 24.9535,55.5003 24.9536,55.5006 24.9536,55.5007 24.9535,55.5009 24.9534,55.501 24.9534,55.501 24.9535,55.5009 24.9536,55.5005 24.9536,55.5003 24.9536,55.5 24.9536,55.4995 24.9534,55.4993 24.9534,55.4991 24.9533,55.4978 24.9525,55.4977 24.9525,55.4976 24.9526,55.4902 24.9642,55.4895 24.9676,55.4895 24.9678,55.4894 24.9679,55.4893 24.968,55.4885 24.969,55.4883 24.9692,55.4881 24.9693,55.4861 24.9694,55.4859 24.9695,55.4791 24.9789,55.4789 24.979,55.4788 24.9789,55.4769 24.9778,55.4766 24.9775,55.4766 24.9773,55.4767 24.9769,55.4769 24.9765,55.477 24.9764,55.477 24.9764)')
SELECT dbo.UDF_CreateGeometryFromString(#string);

Related

Integral type error when adding float to integer

I'm working on implementing circle drawing graphics on an embedded device using C. I've precalculated the trig lookup tables for sin and cos and stored them as const float arrays. The IDE I'm using(Code Composer Studio for the MSP430) throws an error anytime I try to add a value from one of the lookup arrays to the newX or newY variables.
The error message states: "../main.c", line 61: error #31: expression must have integral type which corresponds to this line: newX = (int) (newX + cosTable[i]);
Full code:
#include <msp430.h>
#include "OLED.h"
#include "math.h"
#include "graphics.h"
void graphics_circle(int x, int y, int radius);
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
init();
Delay_ms(1000);
graphics_circle(32, 32, 16);
while(1)
{
}
}
const float sinTable[] = {0.0, 0.018, 0.035, 0.053, 0.07, 0.088, 0.105, 0.122, 0.14, 0.157, 0.174, 0.191, 0.208, 0.225, 0.242, 0.259, 0.276, 0.293, 0.31, 0.326, 0.343, 0.359, 0.375, 0.391, 0.407, 0.423, 0.439, 0.454, 0.47, 0.485, 0.5, 0.516, 0.53, 0.545, 0.56, 0.574, 0.588, 0.602, 0.616, 0.63, 0.643, 0.657, 0.67, 0.682, 0.695, 0.708, 0.72, 0.732, 0.744, 0.755, 0.767, 0.778, 0.789, 0.799, 0.81, 0.82, 0.83, 0.839, 0.849, 0.858, 0.867, 0.875, 0.883, 0.892, 0.899, 0.907, 0.914, 0.921, 0.928, 0.934, 0.94, 0.946, 0.952, 0.957, 0.962, 0.966, 0.971, 0.975, 0.979, 0.982, 0.985, 0.988, 0.991, 0.993, 0.995, 0.997, 0.998, 0.999, 1.0, 1.0, 1.0, 1.0, 1.0, 0.999, 0.998, 0.997, 0.995, 0.993, 0.991, 0.988, 0.985, 0.982, 0.979, 0.975, 0.971, 0.966, 0.962, 0.957, 0.952, 0.946, 0.94, 0.934, 0.928, 0.921, 0.914, 0.907, 0.899, 0.892, 0.883, 0.875, 0.867, 0.858, 0.849, 0.839, 0.83, 0.82, 0.81, 0.799, 0.789, 0.778, 0.767, 0.755, 0.744, 0.732, 0.72, 0.708, 0.695, 0.682, 0.67, 0.657, 0.643, 0.63, 0.616, 0.602, 0.588, 0.574, 0.56, 0.545, 0.53, 0.516, 0.5, 0.485, 0.47, 0.454, 0.439, 0.423, 0.407, 0.391, 0.375, 0.359, 0.343, 0.326, 0.31, 0.293, 0.276, 0.259, 0.242, 0.225, 0.208, 0.191, 0.174, 0.157, 0.14, 0.122, 0.105, 0.088, 0.07, 0.053, 0.035, 0.018, 0.001, -0.017, -0.034, -0.052, -0.069, -0.087, -0.104, -0.121, -0.139, -0.156, -0.173, -0.19, -0.207, -0.224, -0.241, -0.258, -0.275, -0.292, -0.309, -0.325, -0.342, -0.358, -0.374, -0.39, -0.406, -0.422, -0.438, -0.453, -0.469, -0.484, -0.5, -0.515, -0.529, -0.544, -0.559, -0.573, -0.587, -0.601, -0.615, -0.629, -0.642, -0.656, -0.669, -0.681, -0.694, -0.707, -0.719, -0.731, -0.743, -0.754, -0.766, -0.777, -0.788, -0.798, -0.809, -0.819, -0.829, -0.838, -0.848, -0.857, -0.866, -0.874, -0.882, -0.891, -0.898, -0.906, -0.913, -0.92, -0.927, -0.933, -0.939, -0.945, -0.951, -0.956, -0.961, -0.965, -0.97, -0.974, -0.978, -0.981, -0.984, -0.987, -0.99, -0.992, -0.994, -0.996, -0.997, -0.998, -0.999, -0.999, -1.0, -0.999, -0.999, -0.998, -0.997, -0.996, -0.994, -0.992, -0.99, -0.987, -0.984, -0.981, -0.978, -0.974, -0.97, -0.965, -0.961, -0.956, -0.951, -0.945, -0.939, -0.933, -0.927, -0.92, -0.913, -0.906, -0.898, -0.891, -0.882, -0.874, -0.866, -0.857, -0.848, -0.838, -0.829, -0.819, -0.809, -0.798, -0.788, -0.777, -0.766, -0.754, -0.743, -0.731, -0.719, -0.707, -0.694, -0.681, -0.669, -0.656, -0.642, -0.629, -0.615, -0.601, -0.587, -0.573, -0.559, -0.544, -0.529, -0.515, -0.5, -0.484, -0.469, -0.453, -0.438, -0.422, -0.406, -0.39, -0.374, -0.358, -0.342, -0.325, -0.309, -0.292, -0.275, -0.258, -0.241, -0.224, -0.207, -0.19, -0.173, -0.156, -0.139, -0.121, -0.104, -0.087, -0.069, -0.052, -0.034, -0.017, -0.0, };
const float cosTable[] = {1.0, 1.0, 1.0, 0.999, 0.998, 0.997, 0.995, 0.993, 0.991, 0.988, 0.985, 0.982, 0.979, 0.975, 0.971, 0.966, 0.962, 0.957, 0.952, 0.946, 0.94, 0.934, 0.928, 0.921, 0.914, 0.907, 0.899, 0.892, 0.883, 0.875, 0.867, 0.858, 0.849, 0.839, 0.83, 0.82, 0.81, 0.799, 0.789, 0.778, 0.767, 0.755, 0.744, 0.732, 0.72, 0.708, 0.695, 0.682, 0.67, 0.657, 0.643, 0.63, 0.616, 0.602, 0.588, 0.574, 0.56, 0.545, 0.53, 0.516, 0.501, 0.485, 0.47, 0.454, 0.439, 0.423, 0.407, 0.391, 0.375, 0.359, 0.343, 0.326, 0.31, 0.293, 0.276, 0.259, 0.242, 0.225, 0.208, 0.191, 0.174, 0.157, 0.14, 0.122, 0.105, 0.088, 0.07, 0.053, 0.035, 0.018, 0.001, -0.017, -0.034, -0.052, -0.069, -0.087, -0.104, -0.121, -0.139, -0.156, -0.173, -0.19, -0.207, -0.224, -0.241, -0.258, -0.275, -0.292, -0.309, -0.325, -0.342, -0.358, -0.374, -0.39, -0.406, -0.422, -0.438, -0.453, -0.469, -0.484, -0.499, -0.515, -0.529, -0.544, -0.559, -0.573, -0.587, -0.601, -0.615, -0.629, -0.642, -0.656, -0.669, -0.681, -0.694, -0.707, -0.719, -0.731, -0.743, -0.754, -0.766, -0.777, -0.788, -0.798, -0.809, -0.819, -0.829, -0.838, -0.848, -0.857, -0.866, -0.874, -0.882, -0.891, -0.898, -0.906, -0.913, -0.92, -0.927, -0.933, -0.939, -0.945, -0.951, -0.956, -0.961, -0.965, -0.97, -0.974, -0.978, -0.981, -0.984, -0.987, -0.99, -0.992, -0.994, -0.996, -0.997, -0.998, -0.999, -0.999, -1.0, -0.999, -0.999, -0.998, -0.997, -0.996, -0.994, -0.992, -0.99, -0.987, -0.984, -0.981, -0.978, -0.974, -0.97, -0.965, -0.961, -0.956, -0.951, -0.945, -0.939, -0.933, -0.927, -0.92, -0.913, -0.906, -0.898, -0.891, -0.882, -0.874, -0.866, -0.857, -0.848, -0.838, -0.829, -0.819, -0.809, -0.798, -0.788, -0.777, -0.766, -0.754, -0.743, -0.731, -0.719, -0.707, -0.694, -0.681, -0.669, -0.656, -0.642, -0.629, -0.615, -0.601, -0.587, -0.573, -0.559, -0.544, -0.529, -0.515, -0.5, -0.484, -0.469, -0.453, -0.438, -0.422, -0.406, -0.39, -0.374, -0.358, -0.342, -0.325, -0.309, -0.292, -0.275, -0.258, -0.241, -0.224, -0.207, -0.19, -0.173, -0.156, -0.139, -0.121, -0.104, -0.087, -0.069, -0.052, -0.034, -0.017, -0.0, 0.018, 0.035, 0.053, 0.07, 0.088, 0.105, 0.122, 0.14, 0.157, 0.174, 0.191, 0.208, 0.225, 0.242, 0.259, 0.276, 0.293, 0.31, 0.326, 0.343, 0.359, 0.375, 0.391, 0.407, 0.423, 0.439, 0.454, 0.47, 0.485, 0.501, 0.516, 0.53, 0.545, 0.56, 0.574, 0.588, 0.602, 0.616, 0.63, 0.643, 0.657, 0.67, 0.682, 0.695, 0.708, 0.72, 0.732, 0.744, 0.755, 0.767, 0.778, 0.789, 0.799, 0.81, 0.82, 0.83, 0.839, 0.849, 0.858, 0.867, 0.875, 0.883, 0.892, 0.899, 0.907, 0.914, 0.921, 0.928, 0.934, 0.94, 0.946, 0.952, 0.957, 0.962, 0.966, 0.971, 0.975, 0.979, 0.982, 0.985, 0.988, 0.991, 0.993, 0.995, 0.997, 0.998, 0.999, 1.0, 1.0, 1.0, };
void graphics_init(){
OLED_Init();
}
void graphics_circle(int x, int y, int radius){
float i = 0;
int newX = 0;
int newY = 0;
for(i = 0; i < 360; i+=1){
newX = x;
newX = (int) (newX + cosTable[i]);
//newX = x + (int)cosTable[i];//*radius);
//newY = y + (int)sinTable[i];//*radius);
OLED_DrawPoint(newX, newY, 0);
}
}
Apart from the obvious algorithmic problem,
You're using float as array indexing.
Use integral value. Say, int i = 0;

LINQ to SQL - Dead Lock on Insert

I am facing deadlock issue on SQL Server -2014 standard edition. Two inserts are getting deadlocked over a clustered index.
It is an OLTP database and table is high insert and high read, table already has primary key with clustered index and having more that 13 Million records
The SQL Statements are given below
exec sp_executesql N'INSERT INTO [dbo].[PatientBilledItem]([PatientBillUID], [EventOccuredDttm], [ServiceName], [BillableItemUID], [Amount], [CUser], [CWhen], [MUser], [MWhen], [StatusFlag], [OwnerOrganisationUID], [PatientBillableItemUID], [Discount], [NetAmount], [Description], [Comments], [ItemMultiplier], [BSMDDUID], [ItemName], [DiscountAuthorizedBy], [ConsultantShare], [ServiceTax], [CareProviderUID], [QNUOMUID], [SpecialAmount], [IsRefunded], [ConsultantDiscount], [EducationCess], [HigherEducationCess], [RecordedByUID], [OriginalCreditBillUID], [PatientPackageItemUID], [BatchID], [VATPercentage], [InternalCost], [CalculateTaxOnMRP], [StoreUID], [BillPackageUID], [SplitDiscount], [RSLVLUID], [ParentUID], [PackageItemAmount], [RoundOff], [AuthNo], [ExpiryDttm], [BILGRDUID], [ApprovalCode], [ApprovedBy], [InternalBatchID])
VALUES (#p0, #p1, #p2, #p3, #p4, #p5, #p6, #p7, #p8, #p9, #p10, #p11, #p12, #p13, #p14, #p15, #p16, #p17, #p18, #p19, #p20, #p21, #p22, #p23, #p24, #p25, #p26, #p27, #p28, #p29, #p30, #p31, #p32, #p33, #p34, #p35, #p36, #p37, #p38, #p39, #p40, #p41, #p42, #p43, #p44, #p45, #p46, #p47, #p48)
SELECT [t0].[UID], [t0].[TIMESTAMP]
FROM [dbo].[PatientBilledItem] AS [t0]
WHERE [t0].[UID] = (SCOPE_IDENTITY())',N'#p0 bigint,#p1 datetime,#p2 nvarchar(4000),#p3 int,#p4 float,#p5 int,#p6 datetime,#p7 int,#p8 datetime,#p9 nvarchar(4000),#p10 int,#p11 bigint,#p12 float,#p13 float,#p14 nvarchar(4000),#p15 nvarchar(4000),#p16 float,#p17 int,#p18 nvarchar(4000),#p19 int,#p20 float,#p21 float,#p22 int,#p23 int,#p24 float,#p25 nvarchar(4000),#p26 float,#p27 float,#p28 float,#p29 int,#p30 bigint,#p31 bigint,#p32 nvarchar(4000),#p33 float,#p34 float,#p35 nvarchar(4000),#p36 int,#p37 int,#p38 float,#p39 int,#p40 bigint,#p41 float,#p42 float,#p43 nvarchar(4000),#p44 datetime,#p45 int,#p46 nvarchar(4000),#p47 int,#p48 nvarchar(4000)',#p0=3796014,#p1='2017-06-20 12:12:49.300',#p2=N'Consultancy',#p3=38328,#p4=500,#p5=4985,#p6='2017-06-20 12:13:12.603',#p7=4985,#p8='2017-06-20 12:13:12.603',#p9=N'A',#p10=4,#p11=10692556,#p12=NULL,#p13=500,#p14=NULL,#p15=NULL,#p16=1,#p17=1159,#p18=N'Dr. B K ',#p19=NULL,#p20=500,#p21=NULL,#p22=1395,#p23=NULL,#p24=NULL,#p25=NULL,#p26=NULL,#p27=NULL,#p28=NULL,#p29=NULL,#p30=NULL,#p31=NULL,#p32=NULL,#p33=NULL,#p34=NULL,#p35=NULL,#p36=NULL,#p37=NULL,#p38=NULL,#p39=NULL,#p40=NULL,#p41=NULL,#p42=NULL,#p43=NULL,#p44=NULL,#p45=NULL,#p46=NULL,#p47=NULL,#p48=NULL
exec sp_executesql N'INSERT INTO [dbo].[PatientBilledItem]([PatientBillUID], [EventOccuredDttm], [ServiceName], [BillableItemUID], [Amount], [CUser], [CWhen], [MUser], [MWhen], [StatusFlag], [OwnerOrganisationUID], [PatientBillableItemUID], [Discount], [NetAmount], [Description], [Comments], [ItemMultiplier], [BSMDDUID], [ItemName], [DiscountAuthorizedBy], [ConsultantShare], [ServiceTax], [CareProviderUID], [QNUOMUID], [SpecialAmount], [IsRefunded], [ConsultantDiscount], [EducationCess], [HigherEducationCess], [RecordedByUID], [OriginalCreditBillUID], [PatientPackageItemUID], [BatchID], [VATPercentage], [InternalCost], [CalculateTaxOnMRP], [StoreUID], [BillPackageUID], [SplitDiscount], [RSLVLUID], [ParentUID], [PackageItemAmount], [RoundOff], [AuthNo], [ExpiryDttm], [BILGRDUID], [ApprovalCode], [ApprovedBy], [InternalBatchID])
VALUES (#p0, #p1, #p2, #p3, #p4, #p5, #p6, #p7, #p8, #p9, #p10, #p11, #p12, #p13, #p14, #p15, #p16, #p17, #p18, #p19, #p20, #p21, #p22, #p23, #p24, #p25, #p26, #p27, #p28, #p29, #p30, #p31, #p32, #p33, #p34, #p35, #p36, #p37, #p38, #p39, #p40, #p41, #p42, #p43, #p44, #p45, #p46, #p47, #p48)
SELECT [t0].[UID], [t0].[TIMESTAMP]
FROM [dbo].[PatientBilledItem] AS [t0]
WHERE [t0].[UID] = (SCOPE_IDENTITY())',N'#p0 bigint,#p1 datetime,#p2 nvarchar(4000),#p3 int,#p4 float,#p5 int,#p6 datetime,#p7 int,#p8 datetime,#p9 nvarchar(4000),#p10 int,#p11 bigint,#p12 float,#p13 float,#p14 nvarchar(4000),#p15 nvarchar(4000),#p16 float,#p17 int,#p18 nvarchar(4000),#p19 int,#p20 float,#p21 float,#p22 int,#p23 int,#p24 float,#p25 nvarchar(4000),#p26 float,#p27 float,#p28 float,#p29 int,#p30 bigint,#p31 bigint,#p32 nvarchar(4000),#p33 float,#p34 float,#p35 nvarchar(4000),#p36 int,#p37 int,#p38 float,#p39 int,#p40 bigint,#p41 float,#p42 float,#p43 nvarchar(4000),#p44 datetime,#p45 int,#p46 nvarchar(4000),#p47 int,#p48 nvarchar(4000)',#p0=3796013,#p1='2017-06-20 12:13:10.030',#p2=N'Consultancy',#p3=83986,#p4=600,#p5=763,#p6='2017-06-20 12:13:12.023',#p7=763,#p8='2017-06-20 12:13:12.023',#p9=N'A',#p10=8,#p11=10692557,#p12=NULL,#p13=600,#p14=NULL,#p15=NULL,#p16=1,#p17=1159,#p18=N'Dr.L K S',#p19=NULL,#p20=600,#p21=NULL,#p22=1506,#p23=NULL,#p24=NULL,#p25=NULL,#p26=NULL,#p27=NULL,#p28=NULL,#p29=NULL,#p30=NULL,#p31=NULL,#p32=NULL,#p33=NULL,#p34=NULL,#p35=NULL,#p36=NULL,#p37=NULL,#p38=NULL,#p39=NULL,#p40=NULL,#p41=NULL,#p42=NULL,#p43=NULL,#p44=NULL,#p45=NULL,#p46=NULL,#p47=NULL,#p48=NULL
Yes the table is having trigger as well
The event XML is attached
<deadlock>
<victim-list>
<victimProcess id="processa19016ca8" />
</victim-list>
<process-list>
<process id="processa19016ca8" taskpriority="0" logused="3888" waitresource="KEY: 9:72057699966713856 (ffffffffffff)" waittime="1034" ownerId="1298235110" transactionname="user_transaction" lasttranstarted="2017-06-20T11:52:42.003" XDES="0x714fe0d90" lockMode="RangeI-N" schedulerid="1" kpid="7856" status="suspended" spid="66" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2017-06-20T11:52:42.830" lastbatchcompleted="2017-06-20T11:52:42.820" lastattention="1900-01-01T00:00:00.820" clientapp=".Net SqlClient Data Provider" hostname="WIN-2HO2RRV99BU" hostpid="2980" loginname="sa" isolationlevel="serializable (4)" xactid="1298235110" currentdb="9" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
<executionStack>
<frame procname="adhoc" line="1" stmtstart="1236" stmtend="3454" sqlhandle="0x0200000064f4502b431082b3ac55b13757583f58c2c98c7c0000000000000000000000000000000000000000">
unknown </frame>
<frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown </frame>
</executionStack>
<inputbuf>
(#p0 bigint,#p1 datetime,#p2 nvarchar(4000),#p3 int,#p4 float,#p5 int,#p6 datetime,#p7 int,#p8 datetime,#p9 nvarchar(4000),#p10 int,#p11 bigint,#p12 float,#p13 float,#p14 nvarchar(4000),#p15 nvarchar(4000),#p16 float,#p17 int,#p18 nvarchar(4000),#p19 int,#p20 float,#p21 float,#p22 int,#p23 int,#p24 float,#p25 nvarchar(4000),#p26 float,#p27 float,#p28 float,#p29 int,#p30 bigint,#p31 bigint,#p32 nvarchar(4000),#p33 float,#p34 float,#p35 nvarchar(4000),#p36 int,#p37 int,#p38 float,#p39 int,#p40 bigint,#p41 float,#p42 float,#p43 nvarchar(4000),#p44 datetime,#p45 int,#p46 nvarchar(4000),#p47 int,#p48 nvarchar(4000))INSERT INTO [dbo].[PatientBilledItem]([PatientBillUID], [EventOccuredDttm], [ServiceName], [BillableItemUID], [Amount], [CUser], [CWhen], [MUser], [MWhen], [StatusFlag], [OwnerOrganisationUID], [PatientBillableItemUID], [Discount], [NetAmount], [Description], [Comments], [ItemMultiplier], [BSMDDUID], [ItemName], [DiscountAuthorizedBy], [ConsultantShare], [ServiceTax], [CareProviderUID], [QNUOMUID], [Sp </inputbuf>
</process>
<process id="process18572db848" taskpriority="0" logused="3896" waitresource="KEY: 9:72057699966713856 (ffffffffffff)" waittime="1012" ownerId="1298235129" transactionname="user_transaction" lasttranstarted="2017-06-20T11:52:42.027" XDES="0x1ada4fed90" lockMode="RangeI-N" schedulerid="1" kpid="14928" status="suspended" spid="118" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2017-06-20T11:52:42.853" lastbatchcompleted="2017-06-20T11:52:42.847" lastattention="1900-01-01T00:00:00.847" clientapp=".Net SqlClient Data Provider" hostname="WIN-PGECRKPS51J" hostpid="3092" loginname="sa" isolationlevel="serializable (4)" xactid="1298235129" currentdb="9" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
<executionStack>
<frame procname="adhoc" line="1" stmtstart="1236" stmtend="3454" sqlhandle="0x0200000064f4502b431082b3ac55b13757583f58c2c98c7c0000000000000000000000000000000000000000">
unknown </frame>
<frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown </frame>
</executionStack>
<inputbuf>
(#p0 bigint,#p1 datetime,#p2 nvarchar(4000),#p3 int,#p4 float,#p5 int,#p6 datetime,#p7 int,#p8 datetime,#p9 nvarchar(4000),#p10 int,#p11 bigint,#p12 float,#p13 float,#p14 nvarchar(4000),#p15 nvarchar(4000),#p16 float,#p17 int,#p18 nvarchar(4000),#p19 int,#p20 float,#p21 float,#p22 int,#p23 int,#p24 float,#p25 nvarchar(4000),#p26 float,#p27 float,#p28 float,#p29 int,#p30 bigint,#p31 bigint,#p32 nvarchar(4000),#p33 float,#p34 float,#p35 nvarchar(4000),#p36 int,#p37 int,#p38 float,#p39 int,#p40 bigint,#p41 float,#p42 float,#p43 nvarchar(4000),#p44 datetime,#p45 int,#p46 nvarchar(4000),#p47 int,#p48 nvarchar(4000))INSERT INTO [dbo].[PatientBilledItem]([PatientBillUID], [EventOccuredDttm], [ServiceName], [BillableItemUID], [Amount], [CUser], [CWhen], [MUser], [MWhen], [StatusFlag], [OwnerOrganisationUID], [PatientBillableItemUID], [Discount], [NetAmount], [Description], [Comments], [ItemMultiplier], [BSMDDUID], [ItemName], [DiscountAuthorizedBy], [ConsultantShare], [ServiceTax], [CareProviderUID], [QNUOMUID], [Sp </inputbuf>
</process>
</process-list>
<resource-list>
<keylock hobtid="72057699966713856" dbid="9" objectname="HEALTHOBJECT.dbo.PatientBilledItem" indexname="IX_PatientBillableItem" id="lock28bc25a00" mode="RangeS-S" associatedObjectId="72057699966713856">
<owner-list>
<owner id="process18572db848" mode="RangeS-S" />
<owner id="process18572db848" mode="RangeI-N" requestType="convert" />
</owner-list>
<waiter-list>
<waiter id="processa19016ca8" mode="RangeI-N" requestType="convert" />
</waiter-list>
</keylock>
<keylock hobtid="72057699966713856" dbid="9" objectname="HEALTHOBJECT.dbo.PatientBilledItem" indexname="IX_PatientBillableItem" id="lock28bc25a00" mode="RangeS-S" associatedObjectId="72057699966713856">
<owner-list>
<owner id="processa19016ca8" mode="RangeS-S" />
<owner id="processa19016ca8" mode="RangeI-N" requestType="convert" />
</owner-list>
<waiter-list>
<waiter id="process18572db848" mode="RangeI-N" requestType="convert" />
</waiter-list>
</keylock>
</resource-list>
</deadlock>
INSERTs alone won't deadlock each other. If you call SELECT WHERE UID=SCOPE_IDENTITY() in the same transaction though, the server will have to take a SHARED lock on any indexes that contain UID. That's because you tried to read the value of SCOPE_IDENTITY() which will change if another row is added, leading to inconsistent data. If you use the REPEATABLE READ isolation level, you could end up with a deadlock.
The solution is very easy - don't use a separate SELECT. You can use the OUTPUT clause of INSERT to get all the new values, like identity, default values etc :
INSERT INTO [dbo].[PatientBilledItem]
([PatientBillUID], [EventOccuredDttm], [ServiceName], [BillableItemUID], [Amount], [CUser], [CWhen], [MUser], [MWhen], [StatusFlag], [OwnerOrganisationUID], [PatientBillableItemUID], [Discount], [NetAmount], [Description], [Comments], [ItemMultiplier], [BSMDDUID], [ItemName], [DiscountAuthorizedBy], [ConsultantShare], [ServiceTax], [CareProviderUID], [QNUOMUID], [SpecialAmount], [IsRefunded], [ConsultantDiscount], [EducationCess], [HigherEducationCess], [RecordedByUID], [OriginalCreditBillUID], [PatientPackageItemUID], [BatchID], [VATPercentage], [InternalCost], [CalculateTaxOnMRP], [StoreUID], [BillPackageUID], [SplitDiscount], [RSLVLUID], [ParentUID], [PackageItemAmount], [RoundOff], [AuthNo], [ExpiryDttm], [BILGRDUID], [ApprovalCode], [ApprovedBy], [InternalBatchID])
OUTPUT inserted.UID,inserted.Timestamp
VALUES ......
You can combine this with the SNAPSHOT isolation level to reduce blocking between transactions.
Based on provided info, first assumption is that these deadlocks are caused by one of following missing indexes
CREATE /*UNIQUE*/ NONCLUSTERED INDEX IUN_PatientBilledItem_UID_#_TIMESTAMP
ON dbo.PatientBilledItem (UID)
INCLUDE(TIMESTAMP)
or
CREATE /*UNIQUE*/ NONCLUSTERED INDEX IUN_PatientBilledItem_UID_TIMESTAMP
ON dbo.PatientBilledItem (UID, TIMESTAMP)
needed by following SELECT statements:
SELECT [t0].[UID], [t0].[TIMESTAMP]
FROM [dbo].[PatientBilledItem] AS [t0]
WHERE [t0].[UID] = (SCOPE_IDENTITY())
which generate RangeS-S locks (also because TX isolation level is SERIALIZABLE).
Note: Uncomment /*UNIQUE*/ keyword if current index has unique values or unique pair of values (compound index).

Swift: How to swap two axes of a four-dimensional array?

To feed the data to a function correctly, I need to swap two axes in a four-dimensional array in Swift. I'd like to know how to implement or are there any useful function for this purpose.
In Python, if I use numpy.swapaxes(a, axis1, axis2), it's straightforward (https://docs.scipy.org/doc/numpy/reference/generated/numpy.swapaxes.html):
def swapaxes_from_tail_to_head(nparray):
nparray = np.swapaxes(nparray, 2, 3)
nparray = np.swapaxes(nparray, 1, 2)
nparray = np.swapaxes(nparray, 0, 1)
return nparray
Just note that if the array is two-dimensional, I can do like this:
func prettyPrintMatrix( _ matrix:[[Int]] ) {
for array in matrix {
print( array )
}
}
func main() -> (){
print( "MatrixTranspose_Demo" )
print()
let matrix =
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
]
print( "Matrix:")
prettyPrintMatrix( matrix )
print()
let transpose = transposeMatrix( matrix )
print( "Transpose matrix:")
prettyPrintMatrix( transpose )
print()
}
func transposeMatrix( _ matrix:[[Int]] ) -> [[Int]] {
var result = [[Int]](
repeating: [Int]( repeating: 0, count: matrix.count ),
count: matrix[ 0 ].count
)
for i in 0 ..< matrix.count {
for k in 0 ..< matrix[ 0 ].count {
result[ k ][ i ] = matrix[ i ][ k ]
}
}
return result
}
main()
// Reference: http://www.runswiftlang.com/
If you have any ideas how to do swapaxes for four-dimentional (or more) array, please let me know. I appreciate your help.
The simplest way is to hard code everything like the followings:
internal func swapaxesOfFlatArray4d<T>(originalArray: [T], axis1: Int, axis2: Int, dimensionOfArray: [Int]) -> [T] {
assert(axis1 != axis2)
assert(dimensionOfArray.count == 4)
assert(axis1 < dimensionOfArray.count)
assert(axis2 < dimensionOfArray.count)
assert(originalArray.count == dimensionOfArray.reduce(1, *))
assert((T.self == Float.self) || (T.self == Double.self))
var newArray = Array<T>()
if ((axis1 == 0 && axis2 == 1) || (axis1 == 1 && axis2 == 0)) {
for j in 0..<dimensionOfArray[1] {
for i in 0..<dimensionOfArray[0] {
for k in 0..<dimensionOfArray[2] {
for l in 0..<dimensionOfArray[3] {
newArray.append(originalArray[i*dimensionOfArray[1]*dimensionOfArray[2]*dimensionOfArray[3] + j*dimensionOfArray[2]*dimensionOfArray[3] + k*dimensionOfArray[3] + l])
}
}
}
}
} else if ((axis1 == 0 && axis2 == 2) || (axis1 == 2 && axis2 == 0)) {
for k in 0..<dimensionOfArray[2] {
for j in 0..<dimensionOfArray[1] {
for i in 0..<dimensionOfArray[0] {
for l in 0..<dimensionOfArray[3] {
newArray.append(originalArray[i*dimensionOfArray[1]*dimensionOfArray[2]*dimensionOfArray[3] + j*dimensionOfArray[2]*dimensionOfArray[3] + k*dimensionOfArray[3] + l])
}
}
}
}
} else if ((axis1 == 0 && axis2 == 3) || (axis1 == 3 && axis2 == 0)) {
for l in 0..<dimensionOfArray[3] {
for j in 0..<dimensionOfArray[1] {
for k in 0..<dimensionOfArray[2] {
for i in 0..<dimensionOfArray[0] {
newArray.append(originalArray[i*dimensionOfArray[1]*dimensionOfArray[2]*dimensionOfArray[3] + j*dimensionOfArray[2]*dimensionOfArray[3] + k*dimensionOfArray[3] + l])
}
}
}
}
} else if ((axis1 == 1 && axis2 == 2) || (axis1 == 2 && axis2 == 1)) {
for i in 0..<dimensionOfArray[0] {
for k in 0..<dimensionOfArray[2] {
for j in 0..<dimensionOfArray[1] {
for l in 0..<dimensionOfArray[3] {
newArray.append(originalArray[i*dimensionOfArray[1]*dimensionOfArray[2]*dimensionOfArray[3] + j*dimensionOfArray[2]*dimensionOfArray[3] + k*dimensionOfArray[3] + l])
}
}
}
}
} else if ((axis1 == 1 && axis2 == 3) || (axis1 == 3 && axis2 == 1)) {
for i in 0..<dimensionOfArray[0] {
for l in 0..<dimensionOfArray[3] {
for k in 0..<dimensionOfArray[2] {
for j in 0..<dimensionOfArray[1] {
newArray.append(originalArray[i*dimensionOfArray[1]*dimensionOfArray[2]*dimensionOfArray[3] + j*dimensionOfArray[2]*dimensionOfArray[3] + k*dimensionOfArray[3] + l])
}
}
}
}
} else if ((axis1 == 2 && axis2 == 3) || (axis1 == 3 && axis2 == 2)) {
for i in 0..<dimensionOfArray[0] {
for j in 0..<dimensionOfArray[1] {
for l in 0..<dimensionOfArray[3] {
for k in 0..<dimensionOfArray[2] {
newArray.append(originalArray[i*dimensionOfArray[1]*dimensionOfArray[2]*dimensionOfArray[3] + j*dimensionOfArray[2]*dimensionOfArray[3] + k*dimensionOfArray[3] + l])
}
}
}
}
} else {
fatalError("Didn't match all the case")
}
return newArray
}
To decrease the amount of the code, you can a class to change the order of for loops.
Change order of for loops?
It is fairly easy to make a transpose function for a 2d matrix:
func transpose<T>(_ matrix:[[T]]) -> [[T]]
{
return matrix.reduce([[T]]())
{
zip($0,$1).map{$0+[$1]}
+ $0.dropFirst($1.count)
+ $1.dropFirst($0.count).map{[$0]}
}
}
Once you have that, all other transpositions of any dimensions can be converted to a series of 2d transposes on consecutive dimensions (essentially swapping them)
let array12 = (1...4).map{ n in (1...4).map{n*10 + $0} }
let array123 = (1...4).map{ n in array12.map{ $0.map{ n*100 + $0 } } }
let array1234 = (1...4).map{ n in array123.map{ $0.map{ $0.map{ n*1000 + $0 } } } }
let array2134 = transpose(array1234) // swap dimensions 1 and 2
let array1324 = array1234.map{transpose($0)} // swap dimensions 2 and 3
let array1243 = array1234.map{$0.map{transpose($0)}} // swap dimensions 3 and 4
Reusing these 3 basic dimension swaps, all other combinations of the 4 dimensions are possible.
let array2143 = array2134.map{$0.map{transpose($0)}}
let array2413 = array2143.map{transpose($0)}
let array4213 = transpose(array2413)
let array4231 = array4213.map{$0.map{transpose($0)}}
let array4321 = array4231.map{transpose($0)}
// and so on ...
To help test this, I made a 4d print function for the matrix that I used in the playground:
It prints in row column order so you get dimension one as a vertical group of "blocks", dimension 2 as a column of blocks, dimension 3 is rows of each block and dimension 4 is the columns of each block:
func print4d<T>(_ matrix4d:[[[[T]]]])
{
var lines:[String] = []
for d1 in matrix4d
{
lines = []
for (indent,d2) in d1.enumerated()
{
let indentWidth = indent * 80
var lineNumber = 0
let blankLine = "".padding(toLength:indentWidth, withPad:" ", startingAt:0)
for d34 in d2
{
while lines.count <= lineNumber
{ lines.append(blankLine) }
lines[lineNumber] = lines[lineNumber]
.padding(toLength:indentWidth, withPad:" ", startingAt:0)
+ " \(d34)"
lineNumber += 1
}
for index in lines.indices
{
while lines[index].contains(" ")
{ lines[index] = lines[index].replacingOccurrences(of: " ", with: " ") }
}
}
lines.forEach{ print($0) }
print("")
}
}
4d matrix : d1, d2, d3, d4
===========================
[1111, 1112, 1113, 1114] [1211, 1212, 1213, 1214] [1311, 1312, 1313, 1314] [1411, 1412, 1413, 1414]
[1121, 1122, 1123, 1124] [1221, 1222, 1223, 1224] [1321, 1322, 1323, 1324] [1421, 1422, 1423, 1424]
[1131, 1132, 1133, 1134] [1231, 1232, 1233, 1234] [1331, 1332, 1333, 1334] [1431, 1432, 1433, 1434]
[1141, 1142, 1143, 1144] [1241, 1242, 1243, 1244] [1341, 1342, 1343, 1344] [1441, 1442, 1443, 1444]
[2111, 2112, 2113, 2114] [2211, 2212, 2213, 2214] [2311, 2312, 2313, 2314] [2411, 2412, 2413, 2414]
[2121, 2122, 2123, 2124] [2221, 2222, 2223, 2224] [2321, 2322, 2323, 2324] [2421, 2422, 2423, 2424]
[2131, 2132, 2133, 2134] [2231, 2232, 2233, 2234] [2331, 2332, 2333, 2334] [2431, 2432, 2433, 2434]
[2141, 2142, 2143, 2144] [2241, 2242, 2243, 2244] [2341, 2342, 2343, 2344] [2441, 2442, 2443, 2444]
[3111, 3112, 3113, 3114] [3211, 3212, 3213, 3214] [3311, 3312, 3313, 3314] [3411, 3412, 3413, 3414]
[3121, 3122, 3123, 3124] [3221, 3222, 3223, 3224] [3321, 3322, 3323, 3324] [3421, 3422, 3423, 3424]
[3131, 3132, 3133, 3134] [3231, 3232, 3233, 3234] [3331, 3332, 3333, 3334] [3431, 3432, 3433, 3434]
[3141, 3142, 3143, 3144] [3241, 3242, 3243, 3244] [3341, 3342, 3343, 3344] [3441, 3442, 3443, 3444]
[4111, 4112, 4113, 4114] [4211, 4212, 4213, 4214] [4311, 4312, 4313, 4314] [4411, 4412, 4413, 4414]
[4121, 4122, 4123, 4124] [4221, 4222, 4223, 4224] [4321, 4322, 4323, 4324] [4421, 4422, 4423, 4424]
[4131, 4132, 4133, 4134] [4231, 4232, 4233, 4234] [4331, 4332, 4333, 4334] [4431, 4432, 4433, 4434]
[4141, 4142, 4143, 4144] [4241, 4242, 4243, 4244] [4341, 4342, 4343, 4344] [4441, 4442, 4443, 4444]
4d matrix : d2, d1, d3, d4
===========================
[1111, 1112, 1113, 1114] [2111, 2112, 2113, 2114] [3111, 3112, 3113, 3114] [4111, 4112, 4113, 4114]
[1121, 1122, 1123, 1124] [2121, 2122, 2123, 2124] [3121, 3122, 3123, 3124] [4121, 4122, 4123, 4124]
[1131, 1132, 1133, 1134] [2131, 2132, 2133, 2134] [3131, 3132, 3133, 3134] [4131, 4132, 4133, 4134]
[1141, 1142, 1143, 1144] [2141, 2142, 2143, 2144] [3141, 3142, 3143, 3144] [4141, 4142, 4143, 4144]
[1211, 1212, 1213, 1214] [2211, 2212, 2213, 2214] [3211, 3212, 3213, 3214] [4211, 4212, 4213, 4214]
[1221, 1222, 1223, 1224] [2221, 2222, 2223, 2224] [3221, 3222, 3223, 3224] [4221, 4222, 4223, 4224]
[1231, 1232, 1233, 1234] [2231, 2232, 2233, 2234] [3231, 3232, 3233, 3234] [4231, 4232, 4233, 4234]
[1241, 1242, 1243, 1244] [2241, 2242, 2243, 2244] [3241, 3242, 3243, 3244] [4241, 4242, 4243, 4244]
[1311, 1312, 1313, 1314] [2311, 2312, 2313, 2314] [3311, 3312, 3313, 3314] [4311, 4312, 4313, 4314]
[1321, 1322, 1323, 1324] [2321, 2322, 2323, 2324] [3321, 3322, 3323, 3324] [4321, 4322, 4323, 4324]
[1331, 1332, 1333, 1334] [2331, 2332, 2333, 2334] [3331, 3332, 3333, 3334] [4331, 4332, 4333, 4334]
[1341, 1342, 1343, 1344] [2341, 2342, 2343, 2344] [3341, 3342, 3343, 3344] [4341, 4342, 4343, 4344]
[1411, 1412, 1413, 1414] [2411, 2412, 2413, 2414] [3411, 3412, 3413, 3414] [4411, 4412, 4413, 4414]
[1421, 1422, 1423, 1424] [2421, 2422, 2423, 2424] [3421, 3422, 3423, 3424] [4421, 4422, 4423, 4424]
[1431, 1432, 1433, 1434] [2431, 2432, 2433, 2434] [3431, 3432, 3433, 3434] [4431, 4432, 4433, 4434]
[1441, 1442, 1443, 1444] [2441, 2442, 2443, 2444] [3441, 3442, 3443, 3444] [4441, 4442, 4443, 4444]
4d matrix : d1, d2, d4, d3
===========================
[1111, 1121, 1131, 1141] [2111, 2121, 2131, 2141] [3111, 3121, 3131, 3141] [4111, 4121, 4131, 4141]
[1112, 1122, 1132, 1142] [2112, 2122, 2132, 2142] [3112, 3122, 3132, 3142] [4112, 4122, 4132, 4142]
[1113, 1123, 1133, 1143] [2113, 2123, 2133, 2143] [3113, 3123, 3133, 3143] [4113, 4123, 4133, 4143]
[1114, 1124, 1134, 1144] [2114, 2124, 2134, 2144] [3114, 3124, 3134, 3144] [4114, 4124, 4134, 4144]
[1211, 1221, 1231, 1241] [2211, 2221, 2231, 2241] [3211, 3221, 3231, 3241] [4211, 4221, 4231, 4241]
[1212, 1222, 1232, 1242] [2212, 2222, 2232, 2242] [3212, 3222, 3232, 3242] [4212, 4222, 4232, 4242]
[1213, 1223, 1233, 1243] [2213, 2223, 2233, 2243] [3213, 3223, 3233, 3243] [4213, 4223, 4233, 4243]
[1214, 1224, 1234, 1244] [2214, 2224, 2234, 2244] [3214, 3224, 3234, 3244] [4214, 4224, 4234, 4244]
[1311, 1321, 1331, 1341] [2311, 2321, 2331, 2341] [3311, 3321, 3331, 3341] [4311, 4321, 4331, 4341]
[1312, 1322, 1332, 1342] [2312, 2322, 2332, 2342] [3312, 3322, 3332, 3342] [4312, 4322, 4332, 4342]
[1313, 1323, 1333, 1343] [2313, 2323, 2333, 2343] [3313, 3323, 3333, 3343] [4313, 4323, 4333, 4343]
[1314, 1324, 1334, 1344] [2314, 2324, 2334, 2344] [3314, 3324, 3334, 3344] [4314, 4324, 4334, 4344]
[1411, 1421, 1431, 1441] [2411, 2421, 2431, 2441] [3411, 3421, 3431, 3441] [4411, 4421, 4431, 4441]
[1412, 1422, 1432, 1442] [2412, 2422, 2432, 2442] [3412, 3422, 3432, 3442] [4412, 4422, 4432, 4442]
[1413, 1423, 1433, 1443] [2413, 2423, 2433, 2443] [3413, 3423, 3433, 3443] [4413, 4423, 4433, 4443]
[1414, 1424, 1434, 1444] [2414, 2424, 2434, 2444] [3414, 3424, 3434, 3444] [4414, 4424, 4434, 4444]
4d matrix : d1, d3, d2, d4
===========================
[1111, 1112, 1113, 1114] [1121, 1122, 1123, 1124] [1131, 1132, 1133, 1134] [1141, 1142, 1143, 1144]
[2111, 2112, 2113, 2114] [2121, 2122, 2123, 2124] [2131, 2132, 2133, 2134] [2141, 2142, 2143, 2144]
[3111, 3112, 3113, 3114] [3121, 3122, 3123, 3124] [3131, 3132, 3133, 3134] [3141, 3142, 3143, 3144]
[4111, 4112, 4113, 4114] [4121, 4122, 4123, 4124] [4131, 4132, 4133, 4134] [4141, 4142, 4143, 4144]
[1211, 1212, 1213, 1214] [1221, 1222, 1223, 1224] [1231, 1232, 1233, 1234] [1241, 1242, 1243, 1244]
[2211, 2212, 2213, 2214] [2221, 2222, 2223, 2224] [2231, 2232, 2233, 2234] [2241, 2242, 2243, 2244]
[3211, 3212, 3213, 3214] [3221, 3222, 3223, 3224] [3231, 3232, 3233, 3234] [3241, 3242, 3243, 3244]
[4211, 4212, 4213, 4214] [4221, 4222, 4223, 4224] [4231, 4232, 4233, 4234] [4241, 4242, 4243, 4244]
[1311, 1312, 1313, 1314] [1321, 1322, 1323, 1324] [1331, 1332, 1333, 1334] [1341, 1342, 1343, 1344]
[2311, 2312, 2313, 2314] [2321, 2322, 2323, 2324] [2331, 2332, 2333, 2334] [2341, 2342, 2343, 2344]
[3311, 3312, 3313, 3314] [3321, 3322, 3323, 3324] [3331, 3332, 3333, 3334] [3341, 3342, 3343, 3344]
[4311, 4312, 4313, 4314] [4321, 4322, 4323, 4324] [4331, 4332, 4333, 4334] [4341, 4342, 4343, 4344]
[1411, 1412, 1413, 1414] [1421, 1422, 1423, 1424] [1431, 1432, 1433, 1434] [1441, 1442, 1443, 1444]
[2411, 2412, 2413, 2414] [2421, 2422, 2423, 2424] [2431, 2432, 2433, 2434] [2441, 2442, 2443, 2444]
[3411, 3412, 3413, 3414] [3421, 3422, 3423, 3424] [3431, 3432, 3433, 3434] [3441, 3442, 3443, 3444]
[4411, 4412, 4413, 4414] [4421, 4422, 4423, 4424] [4431, 4432, 4433, 4434] [4441, 4442, 4443, 4444]
4d matrix : d4, d2, d3, d1
===========================
[1111, 2111, 3111, 4111] [1211, 2211, 3211, 4211] [1311, 2311, 3311, 4311] [1411, 2411, 3411, 4411]
[1121, 2121, 3121, 4121] [1221, 2221, 3221, 4221] [1321, 2321, 3321, 4321] [1421, 2421, 3421, 4421]
[1131, 2131, 3131, 4131] [1231, 2231, 3231, 4231] [1331, 2331, 3331, 4331] [1431, 2431, 3431, 4431]
[1141, 2141, 3141, 4141] [1241, 2241, 3241, 4241] [1341, 2341, 3341, 4341] [1441, 2441, 3441, 4441]
[1112, 2112, 3112, 4112] [1212, 2212, 3212, 4212] [1312, 2312, 3312, 4312] [1412, 2412, 3412, 4412]
[1122, 2122, 3122, 4122] [1222, 2222, 3222, 4222] [1322, 2322, 3322, 4322] [1422, 2422, 3422, 4422]
[1132, 2132, 3132, 4132] [1232, 2232, 3232, 4232] [1332, 2332, 3332, 4332] [1432, 2432, 3432, 4432]
[1142, 2142, 3142, 4142] [1242, 2242, 3242, 4242] [1342, 2342, 3342, 4342] [1442, 2442, 3442, 4442]
[1113, 2113, 3113, 4113] [1213, 2213, 3213, 4213] [1313, 2313, 3313, 4313] [1413, 2413, 3413, 4413]
[1123, 2123, 3123, 4123] [1223, 2223, 3223, 4223] [1323, 2323, 3323, 4323] [1423, 2423, 3423, 4423]
[1133, 2133, 3133, 4133] [1233, 2233, 3233, 4233] [1333, 2333, 3333, 4333] [1433, 2433, 3433, 4433]
[1143, 2143, 3143, 4143] [1243, 2243, 3243, 4243] [1343, 2343, 3343, 4343] [1443, 2443, 3443, 4443]
[1114, 2114, 3114, 4114] [1214, 2214, 3214, 4214] [1314, 2314, 3314, 4314] [1414, 2414, 3414, 4414]
[1124, 2124, 3124, 4124] [1224, 2224, 3224, 4224] [1324, 2324, 3324, 4324] [1424, 2424, 3424, 4424]
[1134, 2134, 3134, 4134] [1234, 2234, 3234, 4234] [1334, 2334, 3334, 4334] [1434, 2434, 3434, 4434]
[1144, 2144, 3144, 4144] [1244, 2244, 3244, 4244] [1344, 2344, 3344, 4344] [1444, 2444, 3444, 4444]
The lack of direct support for matrix operations in Swift was bothering me so I played around with array extensions and cam up with a few methods that could probably make thing a bit easier.
extension Array
{
func asMatrix(_ axisSizes: Int ...) -> [Any] { return asMatrix(axisSizes) }
func asMatrix(_ axisSizes:[Int]) -> [Any]
{
if count == 0 { return [] }
let requiredVectorSize = axisSizes.reduce(1,*)
let flatData = asVector
var newArray:[Any] = flatData
while newArray.count < requiredVectorSize { newArray = newArray + flatData }
for axisSize in axisSizes.dropFirst().reversed()
{
newArray = (0..<newArray.count/axisSize)
.map{($0*axisSize,($0+1)*axisSize)}
.map{newArray[$0..<$1].map{$0}}
}
return newArray
}
var matrixSize:[Int]
{
get { return [count] + ((first as? [Any])?.matrixSize ?? []) }
set { self = asVector.asMatrix(newValue) as! [Element] }
}
func vectorIndex(of indexes:[Int]) -> Int
{
return zip(matrixSize,indexes).reduce(0){ $0 * $1.0 + $1.1 }
}
func matrixIndex(of vectorIndex:Int) -> [Int]
{
var result:[Int] = []
var vectorIndex = vectorIndex
for dim in matrixSize.reversed()
{
result.append(vectorIndex % dim)
vectorIndex = vectorIndex / dim
}
return result.reversed()
}
func enumeratedMatrix() -> [([Int],Any)]
{
return asVector.enumerated().map{(self.matrixIndex(of:$0),$1)}
}
var vectorSize:Int { return matrixSize.reduce(1,*) }
var asVector:[Any]
{
get { return (self as? [[Any]])?.reduce(Array<Any>()){$0+$1}.asVector ?? self}
set { self = newValue.asMatrix(matrixSize) as! [Element] }
}
subscript(indexes:[Int]) -> Any
{
get { return indexes.reduce(self as Any){ ($0 as! [Any])[$1] } }
set {
if indexes.count == 1
{
self[indexes.first!] = newValue as! Element
}
else
{
var subArray = self[indexes.first!] as! Array<Any>
let subIndexes:[Int] = indexes.dropFirst().map{$0}
subArray[subIndexes] = newValue
self[indexes.first!] = subArray as! Element
}
}
}
func transposedMatrix(_ dim1:Int=0, _ dim2:Int=1) -> [Any]
{
if dim1 == dim2 { return self }
var transposedSizes = matrixSize
swap(&transposedSizes[dim1],&transposedSizes[dim2])
var indexMap = (0..<transposedSizes.count).map{$0}
swap(&indexMap[dim1],&indexMap[dim2])
let mapping = (0..<vectorSize)
.map{($0, matrixIndex(of:$0))}
.map{(vi,mi) in (vi,indexMap.map{mi[$0]})}
.map{(vi,mi) in (vi,self.vectorIndex(of:mi)) }
var flatData = asVector
return mapping
.sorted{$0.1 < $1.1}
.map{flatData[$0.0]}
.asMatrix(transposedSizes)
}
}
The only issue remaining is that I had to use type erasure so these matrices are treated as arrays or Any and require some type casting for actual use. Nevertheless, it is easier to manipulate them:
// initialized from vectors:
//
let squareNumbers = (0..<64).map{$0}
var chessBoard = squareNumbers.asMatrix(8,8)
// swapping axes
//
let m4Dim4842 = [0].asMatrix(4,8,4,2) // 1 element vector is repeated to fill content
let m4Dim2844 = m4Dim4842.transposedMatrix(3,0) // swapped dimensions 0 and 3
// double brackets to access elements
//
let queenPos = chessBoard[[4,0]] as! Int
chessBoard[[4,0]] = queenPos
// enumeration to traverse all elements
// (and data assignment using a 1d vector)
chessBoard.asVector = chessBoard.enumeratedMatrix().map{$0.0[0]==$0.0[1] ? 1 : 0}

Linux kernel ftrace irqsoff tracer generates strange output

I was analyzing the interrupt latency in my system( Freescale ARM MX6Q with linux kernel version 3.0.35), I am using the irqsoff tracer, and this is the output I'm getting for the biggest irq off latency:
# tracer: irqsoff
#
# irqsoff latency trace v1.1.5
# --------------------------------------------------------------------
# latency: 2770 us, #89/89, CPU#0 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:4)
# -----------------
# | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)
# -----------------
# => started at: tick_oneshot_mode_active
# => ended at: default_idle
#
#
# _------=> CPU#
# / _-----=> irqs-off
# | / _----=> need-resched
# || / _---=> hardirq/softirq
# ||| / _--=> preempt-depth
# |||| / delay
# cmd pid ||||| time | caller
# \ / ||||| \ | /
<idle>-0 0d..1 1us : tick_oneshot_mode_active
<idle>-0 0d..1 2us : clockevents_notify <-arch_idle
<idle>-0 0d..1 3us : _raw_spin_lock_irqsave <-clockevents_notify
<idle>-0 0d..1 5us : __raw_spin_lock_irqsave <-_raw_spin_lock_irqsave
<idle>-0 0d..1 6us : add_preempt_count <-__raw_spin_lock_irqsave
<idle>-0 0d..2 7us : clockevents_do_notify <-clockevents_notify
<idle>-0 0d..2 8us : raw_notifier_call_chain <-clockevents_do_notify
<idle>-0 0d..2 10us : __raw_notifier_call_chain <-raw_notifier_call_chain
<idle>-0 0d..2 11us : notifier_call_chain <-__raw_notifier_call_chain
<idle>-0 0d..2 12us : tick_notify <-notifier_call_chain
<idle>-0 0d..2 13us : tick_broadcast_oneshot_control <-tick_notify
<idle>-0 0d..2 15us : _raw_spin_lock_irqsave <-tick_broadcast_oneshot_control
<idle>-0 0d..2 16us : __raw_spin_lock_irqsave <-_raw_spin_lock_irqsave
<idle>-0 0d..2 17us+: add_preempt_count <-__raw_spin_lock_irqsave
<idle>-0 0d..3 19us : clockevents_set_mode <-tick_broadcast_oneshot_control
<idle>-0 0d..3 20us : twd_set_mode <-clockevents_set_mode
<idle>-0 0d..3 21us : irq_modify_status <-gic_disable_ppi
<idle>-0 0d..3 22us : __irq_get_desc_lock <-irq_modify_status
<idle>-0 0d..3 24us : irq_to_desc <-__irq_get_desc_lock
<idle>-0 0d..3 25us : _raw_spin_lock_irqsave <-__irq_get_desc_lock
<idle>-0 0d..3 26us : __raw_spin_lock_irqsave <-_raw_spin_lock_irqsave
<idle>-0 0d..3 27us : add_preempt_count <-__raw_spin_lock_irqsave
<idle>-0 0d..4 29us : __irq_put_desc_unlock <-irq_modify_status
<idle>-0 0d..4 30us : _raw_spin_unlock_irqrestore <-__irq_put_desc_unlock
<idle>-0 0d..4 31us : sub_preempt_count <-_raw_spin_unlock_irqrestore
<idle>-0 0d..3 32us : irq_get_irq_data <-gic_disable_ppi
<idle>-0 0d..3 34us : irq_to_desc <-irq_get_irq_data
<idle>-0 0d..3 35us : gic_mask_irq <-gic_disable_ppi
<idle>-0 0d..3 36us : _raw_spin_lock <-gic_mask_irq
<idle>-0 0d..3 37us : __raw_spin_lock <-_raw_spin_lock
<idle>-0 0d..3 39us : add_preempt_count <-__raw_spin_lock
<idle>-0 0d..4 40us : _raw_spin_unlock <-gic_mask_irq
<idle>-0 0d..4 41us+: sub_preempt_count <-_raw_spin_unlock
<idle>-0 0d..3 43us : _raw_spin_unlock_irqrestore <-tick_broadcast_oneshot_control
<idle>-0 0d..3 44us : sub_preempt_count <-_raw_spin_unlock_irqrestore
<idle>-0 0d..2 45us+: _raw_spin_unlock_irqrestore <-clockevents_notify
<idle>-0 0d..2 47us : sub_preempt_count <-_raw_spin_unlock_irqrestore
<idle>-0 0d..1 48us+: mxc_cpu_lp_set <-arch_idle
<idle>-0 0d..1 50us+: gpc_mask_single_irq <-mxc_cpu_lp_set
<idle>-0 0d..1 51us+: gpc_mask_single_irq <-mxc_cpu_lp_set
<idle>-0 0d..1 53us+: arch_idle_multi_core <-arch_idle
<idle>-0 0d..1 55us!: ca9_do_idle <-arch_idle_multi_core
<idle>-0 0d..1 2709us : clockevents_notify <-arch_idle
<idle>-0 0d..1 2710us : _raw_spin_lock_irqsave <-clockevents_notify
<idle>-0 0d..1 2711us : __raw_spin_lock_irqsave <-_raw_spin_lock_irqsave
<idle>-0 0d..1 2712us+: add_preempt_count <-__raw_spin_lock_irqsave
<idle>-0 0d..2 2714us : clockevents_do_notify <-clockevents_notify
<idle>-0 0d..2 2715us : raw_notifier_call_chain <-clockevents_do_notify
<idle>-0 0d..2 2716us : __raw_notifier_call_chain <-raw_notifier_call_chain
<idle>-0 0d..2 2717us : notifier_call_chain <-__raw_notifier_call_chain
<idle>-0 0d..2 2718us : tick_notify <-notifier_call_chain
<idle>-0 0d..2 2720us : tick_broadcast_oneshot_control <-tick_notify
<idle>-0 0d..2 2721us : _raw_spin_lock_irqsave <-tick_broadcast_oneshot_control
<idle>-0 0d..2 2722us : __raw_spin_lock_irqsave <-_raw_spin_lock_irqsave
<idle>-0 0d..2 2723us : add_preempt_count <-__raw_spin_lock_irqsave
<idle>-0 0d..3 2725us : clockevents_set_mode <-tick_broadcast_oneshot_control
<idle>-0 0d..3 2726us : twd_set_mode <-clockevents_set_mode
<idle>-0 0d..3 2727us : irq_modify_status <-gic_enable_ppi
<idle>-0 0d..3 2729us : __irq_get_desc_lock <-irq_modify_status
<idle>-0 0d..3 2730us : irq_to_desc <-__irq_get_desc_lock
<idle>-0 0d..3 2731us : _raw_spin_lock_irqsave <-__irq_get_desc_lock
<idle>-0 0d..3 2732us : __raw_spin_lock_irqsave <-_raw_spin_lock_irqsave
<idle>-0 0d..3 2733us+: add_preempt_count <-__raw_spin_lock_irqsave
<idle>-0 0d..4 2738us+: __irq_put_desc_unlock <-irq_modify_status
<idle>-0 0d..4 2739us : _raw_spin_unlock_irqrestore <-__irq_put_desc_unlock
<idle>-0 0d..4 2741us : sub_preempt_count <-_raw_spin_unlock_irqrestore
<idle>-0 0d..3 2742us : irq_get_irq_data <-gic_enable_ppi
<idle>-0 0d..3 2743us : irq_to_desc <-irq_get_irq_data
<idle>-0 0d..3 2745us : gic_unmask_irq <-gic_enable_ppi
<idle>-0 0d..3 2746us : _raw_spin_lock <-gic_unmask_irq
<idle>-0 0d..3 2747us : __raw_spin_lock <-_raw_spin_lock
<idle>-0 0d..3 2748us+: add_preempt_count <-__raw_spin_lock
<idle>-0 0d..4 2750us : _raw_spin_unlock <-gic_unmask_irq
<idle>-0 0d..4 2751us+: sub_preempt_count <-_raw_spin_unlock
<idle>-0 0d..3 2753us : ktime_get <-tick_broadcast_oneshot_control
<idle>-0 0d..3 2754us+: clocksource_mmio_readl_up <-ktime_get
<idle>-0 0d..3 2756us : tick_program_event <-tick_broadcast_oneshot_control
<idle>-0 0d..3 2757us : tick_dev_program_event <-tick_program_event
<idle>-0 0d..3 2758us : ktime_get <-tick_dev_program_event
<idle>-0 0d..3 2759us+: clocksource_mmio_readl_up <-ktime_get
<idle>-0 0d..3 2761us : clockevents_program_event <-tick_dev_program_event
<idle>-0 0d..3 2762us : twd_set_next_event <-clockevents_program_event
<idle>-0 0d..3 2764us : _raw_spin_unlock_irqrestore <-tick_broadcast_oneshot_control
<idle>-0 0d..3 2765us+: sub_preempt_count <-_raw_spin_unlock_irqrestore
<idle>-0 0d..2 2767us : _raw_spin_unlock_irqrestore <-clockevents_notify
<idle>-0 0d..2 2768us : sub_preempt_count <-_raw_spin_unlock_irqrestore
<idle>-0 0d..1 2769us+: default_idle
<idle>-0 0d..1 2772us+: trace_hardirqs_on <-default_idle
<idle>-0 0d..1 2773us : <stack trace>
=> trace_hardirqs_on
=> default_idle
=> cpu_idle
=> rest_init
=> start_kernel
=>
So according to ftrace I have a pretty big latency, it looks as if the interrupts are disabled as long as the CPU is idle. So I thought surely this cannot be true, so I looked more closely at function tick_oneshot_mode_active:
int tick_oneshot_mode_active(void)
{
unsigned long flags;
int ret;
local_irq_save(flags);
ret = __this_cpu_read(tick_cpu_device.mode) == TICKDEV_MODE_ONESHOT;
local_irq_restore(flags);
return ret;
}
So in the macro local_irq_save, the interrupts are disabled and the function trace_hardirqs_off() is called which registers that the interrupts were disabled:
#define local_irq_save(flags) \
do { \
raw_local_irq_save(flags); \
trace_hardirqs_off(); \
} while (0)
After checking the device mode the interrupts are enabled, now here it is strange:
#define local_irq_restore(flags) \
do { \
if (raw_irqs_disabled_flags(flags)) { \
raw_local_irq_restore(flags); \
trace_hardirqs_off(); \
} else { \
trace_hardirqs_on(); \
raw_local_irq_restore(flags); \
} \
} while (0)
In my case the code goes over the first branch:
if (raw_irqs_disabled_flags(flags)) { \
raw_local_irq_restore(flags); \
trace_hardirqs_off(); \
It looks as if even though the interrupts are enabled back, function trace_hardirqs_on is not called but trace_hardirqs_off(). Why is this happening, do I really have this big latency?
I faced with the same problem, and I patch kernel with this:
https://lkml.org/lkml/2014/5/25/83
after that idle disappear from trace.

Group by does not work - SQL 2008 R2

I have 3 rows that I need to be outputted into just 1 row, the script below should do, but I can't seem to have the expected result, it always shows up as 3 rows, is there something I'm missing? should I sum all the fields since they are all in the "GROUP" clause?
Btw, its working just before I made changes to the following result fields;
TSL_DAY_A
TSL_NET_A
TSL_TX_SAL
TSL_CHG
These fields were initially assigned with 0.00 as default values.
I have my eyes already tired staring at it,...
SELECT BR_CODE
,N_CHECK
,CLAS_C
,CLAS_TRD_C
,STOR_NO
,SUM(TSL_NEW_A) AS TSL_NEW_A
,SUM(TSL_OLD_A) AS TSL_OLD_A
,SalesType
,SUM(TSL_DAY_A) AS TSL_DAY_A
,SUM(TSL_DIS_A) AS TSL_DIS_A
,TSL_DIS_B
,SUM(TSL_DIS_C) AS TSL_DIS_C
,TSL_DIS_D
,SUM(TSL_DIS_E) AS TSL_DIS_E
,TSL_Dis_F
,TSL_Dis_G
,TSL_Dis_H
,TSL_Dis_I
,TSL_Dis_J
,TSL_Dis_K
,TSL_Dis_L
,SUM(TSL_TAX_A) AS TSL_TAX_A
,TSL_TAX_B
,TSL_ADJ_A
,TSL_ADJ_POS
,TS_ADJ_NEG
,TSL_ADJ_NT_POS
,TSL_ADJ_NT_NEG
,SUM(TSL_NET_A) AS TSL_NET_A
,SUM(TSL_VOID) AS TSL_VOID
,SUM(TSL_RFND) AS TSL_RFND
,SUM(TSL_TX_SAL) AS TSL_TX_SAL
,SUM(TSL_NX_SAL) AS TSL_NX_SAL
,TSL_CHG
,SUM(TSL_CSH) AS TSL_CSH
,SUM(TSL_GC) AS TSL_GC
,TSL_EPS
,TSL_TND
,TSL_MCRD
,TSL_VISA
,TSL_AMEX
,TSL_DINERS
,TSL_JBC
,TSL_OTCRD
,TSL_SV_CHG
,TSL_OT_CHG
,SUM(TSL_FT) AS TSL_FT
,SUM(TSL_LT) AS TSL_LT
,SUM(TSL_NT) AS TSL_NT
,SUM(TSL_BEG_INV) AS TSL_BEG_INV
,SUM(TSL_END_INV) AS TSL_END_INV
,SUM(TSL_TC_CASH) AS TSL_TC_CASH
,SUM(TSL_TC_GC) AS TSL_TC_GC
,TSL_TC_EPS
,TSL_TC_TND
,TSL_TC_MCD
,TSL_TC_VIS
,TSL_TC_AMX
,TSL_TC_DIN
,TSL_TC_JBC
,TSL_TC_OC
,TSL_MCH
,TSL_SRL
,SUM(TSL_ZCNT) AS TSL_ZCNT
,TSL_TIME
,TSL_DTE
FROM(
SELECT
BR_CODE
,N_CHECK
,CLAS_C
,CLAS_TRD_C
,STOR_NO
,SUM(TSL_NEW_A) AS TSL_NEW_A
,SUM(TSL_OLD_A) AS TSL_OLD_A
,SalesType
,SUM(TSL_DAY_A) AS TSL_DAY_A
,SUM(TSL_DIS_A) AS TSL_DIS_A
,TSL_DIS_B
,SUM(TSL_DIS_C) AS TSL_DIS_C
,TSL_DIS_D
,SUM(TSL_DIS_E) AS TSL_DIS_E
,TSL_Dis_F
,TSL_Dis_G
,TSL_Dis_H
,TSL_Dis_I
,TSL_Dis_J
,TSL_Dis_K
,TSL_Dis_L
,SUM(TSL_TAX_A) AS TSL_TAX_A
,TSL_TAX_B
,TSL_ADJ_A
,TSL_ADJ_POS
,TS_ADJ_NEG
,TSL_ADJ_NT_POS
,TSL_ADJ_NT_NEG
,SUM(TSL_NET_A) AS TSL_NET_A
,SUM(TSL_VOID) AS TSL_VOID
,SUM(TSL_RFND) AS TSL_RFND
,SUM(TSL_TX_SAL) AS TSL_TX_SAL
,SUM(TSL_NX_SAL) AS TSL_NX_SAL
,TSL_CHG
,SUM(TSL_CSH) AS TSL_CSH
,SUM(TSL_GC) AS TSL_GC
,TSL_EPS
,TSL_TND
,TSL_MCRD
,TSL_VISA
,TSL_AMEX
,TSL_DINERS
,TSL_JBC
,TSL_OTCRD
,TSL_SV_CHG
,TSL_OT_CHG
,SUM(TSL_FT) AS TSL_FT
,SUM(TSL_LT) AS TSL_LT
,SUM(TSL_NT) AS TSL_NT
,SUM(TSL_BEG_INV) AS TSL_BEG_INV
,SUM(TSL_END_INV) AS TSL_END_INV
,SUM(TSL_TC_CASH) AS TSL_TC_CASH
,SUM(TSL_TC_GC) AS TSL_TC_GC
,TSL_TC_EPS
,TSL_TC_TND
,TSL_TC_MCD
,TSL_TC_VIS
,TSL_TC_AMX
,TSL_TC_DIN
,TSL_TC_JBC
,TSL_TC_OC
,TSL_MCH
,TSL_SRL
,SUM(TSL_ZCNT) AS TSL_ZCNT
,TSL_TIME
,TSL_DTE
FROM
(SELECT
#branchcode AS BR_CODE
,#ncheck AS N_CHECK
,#classc AS CLAS_C
,#classtrd AS CLAS_TRD_C
,#storeno AS STOR_NO
,SUM(CAST(NGTOTAL AS DECIMAL(16,2)) + CAST(OGTOTAL AS DECIMAL(16,2))) AS TSL_NEW_A
,SUM(CAST(OGTOTAL AS DECIMAL(16,2))) AS TSL_OLD_A
,#salestype AS SalesType
,SUM(((CAST(SALESREGULAR AS DECIMAL(16,2)) - CAST(SALESVATEXEMPT AS DECIMAL(16,2))) +
CAST(SALESCD20 AS DECIMAL(16,2)) +
CAST(SALESCD5 AS DECIMAL(16,2)) +
CAST(SALEPWD AS DECIMAL(16,2)) +
CAST(SALESTGOVT AS DECIMAL(16,2)) +
CAST(SALESZERORATED AS DECIMAL(16,2)) +
CAST(DISCREGULARAMT AS DECIMAL(16,2)) +
CAST(DISCSCD20AMT AS DECIMAL(16,2)) +
CAST(DISCSCD5AMT AS DECIMAL(16,2)) +
CAST(DISCPWD20AMT AS DECIMAL(16,2)) +
CAST(DISCPWD5AMT AS DECIMAL(16,2)) +
CAST(VOIDTRANAMT AS DECIMAL(16,2)) +
CAST(ITEMVOIDAMT AS DECIMAL(16,2)) +
CAST(TICKETRETAMT AS DECIMAL(16,2)) +
CAST(ITEMRETAMT AS DECIMAL(16,2)))/1.12) + CAST(SALESVATEXEMPT AS DECIMAL(16,2)) AS TSL_DAY_A --SUM(cast(round((cast(TSALES as decimal)/1.12),2) AS DECIMAL(16,2))) AS TSL_DAY_A --Help
,SUM(ABS(CAST(DISCREGULARAMT AS DECIMAL(16,2)))) AS TSL_DIS_A
,0.00 AS TSL_DIS_B
,SUM(CAST(DISCSCD20AMT AS DECIMAL(16,2)) + CAST(DISCSCD5AMT AS DECIMAL(16,2))) AS TSL_DIS_C
,0.00 AS TSL_DIS_D
,SUM(CAST(DISCSCD20AMT AS DECIMAL(16,2)) + CAST(DISCSCD5AMT AS DECIMAL(16,2))) AS TSL_DIS_E
,0.00 AS TSL_Dis_F
,0.00 AS TSL_Dis_G
,0.00 AS TSL_Dis_H
,0.00 AS TSL_Dis_I
,0.00 AS TSL_Dis_J
,0.00 AS TSL_Dis_K
,0.00 AS TSL_Dis_L
,SUM(CAST(VATSALEAMT AS DECIMAL(16,2))) AS TSL_TAX_A
,0.00 AS TSL_TAX_B
,0.00 TSL_ADJ_A
,0.00 AS TSL_ADJ_POS
,0.00 AS TS_ADJ_NEG
,0.00 AS TSL_ADJ_NT_POS
,0.00 AS TSL_ADJ_NT_NEG
,SUM(CAST(DGROSSSALES AS DECIMAL(16,2)) - CAST(TOTALTAXVALUE AS DECIMAL(16,2))) AS TSL_NET_A --Help
,SUM(CAST(VOIDTRANAMT AS DECIMAL(16,2))) AS TSL_VOID
,SUM(ABS(CAST(ITEMRETAMT AS DECIMAL(16,2)))) AS TSL_RFND
,SUM(((CAST(SALESREGULAR AS DECIMAL(16,2)) + CAST(SALESVATEXEMPT AS DECIMAL(16,2))) +
CAST(SALESCD20 AS DECIMAL(16,2)) +
CAST(SALESCD5 AS DECIMAL(16,2)) +
CAST(SALEPWD AS DECIMAL(16,2)) +
CAST(SALESTGOVT AS DECIMAL(16,2)) +
CAST(SALESZERORATED AS DECIMAL(16,2)) +
CAST(DISCREGULARAMT AS DECIMAL(16,2)) +
CAST(DISCSCD20AMT AS DECIMAL(16,2)) +
CAST(DISCSCD5AMT AS DECIMAL(16,2)) +
CAST(DISCPWD20AMT AS DECIMAL(16,2)) +
CAST(DISCPWD5AMT AS DECIMAL(16,2)) +
CAST(VOIDTRANAMT AS DECIMAL(16,2)) +
CAST(ITEMVOIDAMT AS DECIMAL(16,2)) +
CAST(TICKETRETAMT AS DECIMAL(16,2)) +
CAST(ITEMRETAMT AS DECIMAL(16,2)))) AS TSL_TX_SAL --Help
,(CAST(SALESVATEXEMPT AS DECIMAL(16,2)) + (CAST(ZERORATEDSALEAMT AS DECIMAL(16,2)) - CAST(ZERORATEDSALETAXVALUE AS DECIMAL(16,2)))) AS TSL_NX_SAL
,SUM(CAST(CCARDATMCHRGONLINEAMT AS DECIMAL(16,2))) AS TSL_CHG --Help
,SUM(CAST(TENDERCASHAMT AS DECIMAL(16,2))) AS TSL_CSH
,SUM(CAST(OTHTENDERSMGCAMT AS DECIMAL(16,2)) + CAST(OTHTENDERSODEXOAMT AS DECIMAL(16,2))) AS TSL_GC --+ CAST(TENDERCHKAMT AS DECIMAL) AS TSL_GC
,0.00 AS TSL_EPS
,0.00 AS TSL_TND
,0.00 AS TSL_MCRD
,0.00 AS TSL_VISA
,0.00 AS TSL_AMEX
,0.00 AS TSL_DINERS
,0.00 AS TSL_JBC
,0.00 AS TSL_OTCRD
,0.00 AS TSL_SV_CHG
,0.00 AS TSL_OT_CHG
,SUM(CAST(ABS(BEGSI) AS INT)) AS TSL_FT
,SUM(CAST(ABS(LASSI) AS INT)) AS TSL_LT
,SUM(CAST((CAST(QTYREGULAR AS DECIMAL(18,2)) + CAST(QTYSCD20 AS DECIMAL(18,2)) + CAST(QTYSCD5 AS DECIMAL(18,2)) + CAST(QTYPWD AS DECIMAL(18,2)) + CAST(QTYTGOVT AS DECIMAL(18,2)) + CAST(QTYZERORATED AS DECIMAL(18,2))
+ CAST(QTYVATEXEMPT AS DECIMAL(18,2)) + CAST(DISCREGULARQTY AS DECIMAL(18,2)) + CAST(DISCSCD20QTY AS DECIMAL(18,2)) + CAST(DISCSCD5QTY AS DECIMAL(18,2)) + CAST(DISCPWD20QTY AS DECIMAL(18,2))
+ CAST(DISCPWD5QTY AS DECIMAL(18,2)) + CAST(VOIDTRANQTY AS DECIMAL(18,2)) + CAST(ITEMVOIDQTY AS DECIMAL(18,2))*-1 + CAST(TICKETRETQTY AS DECIMAL(18,2))*-1 + CAST(ITEMRETQTY AS DECIMAL(18,2))*-1
+ CAST(ADDLOANTOTQTY AS DECIMAL(18,2))) AS INT)) AS TSL_NT
,SUM(CAST(ABS(BEGSI) AS INT)) AS TSL_BEG_INV
,SUM(CAST(ABS(LASSI) AS INT)) AS TSL_END_INV
,SUM(CAST(QTYREGULAR AS INT)) as TSL_TC_CASH
,SUM(CAST(OTHTENDERSMGCQTY AS INT) + CAST(OTHTENDERSODEXOQTY AS INT)) AS TSL_TC_GC --+ CAST(TENDERCHKQTY AS INT) AS TSL_TC_GC
,0 AS TSL_TC_EPS
,0 AS TSL_TC_TND
,0 AS TSL_TC_MCD
,0 AS TSL_TC_VIS
,0 AS TSL_TC_AMX
,0 AS TSL_TC_DIN
,0 AS TSL_TC_JBC
,0 AS TSL_TC_OC
,#machineno AS TSL_MCH
,0 AS TSL_SRL
,SUM(CAST(ABS(ZCOUNTER) AS INT)) AS TSL_ZCNT
--,LEFT(CONVERT(TIME,GETDATE()),8) AS TSL_TIME
,RIGHT('00'+RTRIM(CAST(DATEPART(HH,GETDATE())AS VARCHAR(5))),2)+RIGHT('00'+RTRIM(CAST(DATEPART(MI,GETDATE()) AS VARCHAR(5))),2)+RIGHT('00'+RTRIM(CAST(DATEPART(SS,GETDATE()) AS VARCHAR(5))),2) AS TSL_TIME
--,SUBSTRING(convert(varchar,WorkDate,111),6,2)+'/'+Right(convert(varchar,WorkDate,111),2)+'/'+left(convert(varchar,WorkDate,111),4) AS TSL_DTE
,SUBSTRING(convert(varchar,WorkDate,111),6,2)+Right(convert(varchar,WorkDate,111),2)+left(convert(varchar,WorkDate,111),4) AS TSL_DTE
FROM dbo.TermZTran t
LEFT JOIN
(SELECT sLessee, sTenantNumber AS TenantCode, sStoreNumber FROM mLandlordStore) tInfo
ON CAST(t.STORE AS INT) = CAST(tInfo.sStoreNumber AS INT)
WHERE CAST(t.Store AS INT) = CAST(#branchcode AS INT)
--AND CAST(t.POS AS int) = CAST(#posno AS int)
AND tInfo.sLessee = #lesseeCode
AND CONVERT(nvarchar(10),t.WorkDate,101) = #trandate
--AND CONVERT(nvarchar(10),t.WorkDate,101) = '04/16/2013' --#trandate
GROUP BY
SALESVATEXEMPT
,ZERORATEDSALEAMT
,ZERORATEDSALETAXVALUE
,WorkDate
) tFinal
--WHERE CAST(BR_CODE AS INT) = CAST('0040' AS INT)
GROUP BY
BR_CODE
,N_CHECK
,CLAS_C
,CLAS_TRD_C
,STOR_NO
,TSL_NEW_A
,TSL_OLD_A
,SalesType
,TSL_DAY_A
,TSL_DIS_A
,TSL_DIS_B
,TSL_DIS_C
,TSL_DIS_D
,TSL_DIS_E
,TSL_Dis_F
,TSL_Dis_G
,TSL_Dis_H
,TSL_Dis_I
,TSL_Dis_J
,TSL_Dis_K
,TSL_Dis_L
,TSL_TAX_A
,TSL_TAX_B
,TSL_ADJ_A
,TSL_ADJ_POS
,TS_ADJ_NEG
,TSL_ADJ_NT_POS
,TSL_ADJ_NT_NEG
,TSL_NET_A
,TSL_VOID
,TSL_RFND
,TSL_TX_SAL
,TSL_NX_SAL
,TSL_CHG
,TSL_CSH
,TSL_GC
,TSL_EPS
,TSL_TND
,TSL_MCRD
,TSL_VISA
,TSL_AMEX
,TSL_DINERS
,TSL_JBC
,TSL_OTCRD
,TSL_SV_CHG
,TSL_OT_CHG
,TSL_FT
,TSL_LT
,TSL_NT
,TSL_BEG_INV
,TSL_END_INV
,TSL_TC_CASH
,TSL_TC_GC
,TSL_TC_EPS
,TSL_TC_TND
,TSL_TC_MCD
,TSL_TC_VIS
,TSL_TC_AMX
,TSL_TC_DIN
,TSL_TC_JBC
,TSL_TC_OC
,TSL_MCH
,TSL_SRL
,TSL_ZCNT
,TSL_TIME
,TSL_DTE) dt
GROUP BY
dt.BR_CODE
,dt.CLAS_C
,dt.CLAS_TRD_C
,dt.N_CHECK
,dt.STOR_NO
,dt.SalesType
,TSL_DAY_A
,TSL_DIS_A
,TSL_DIS_B
,TSL_DIS_C
,TSL_DIS_D
,TSL_DIS_E
,TSL_Dis_F
,TSL_Dis_G
,TSL_Dis_H
,TSL_Dis_I
,TSL_Dis_J
,TSL_Dis_K
,TSL_Dis_L
,TSL_TAX_A
,TSL_TAX_B
,TSL_ADJ_A
,TSL_ADJ_POS
,TS_ADJ_NEG
,TSL_ADJ_NT_POS
,TSL_ADJ_NT_NEG
,TSL_NET_A
,TSL_VOID
,TSL_RFND
,TSL_TX_SAL
,TSL_NX_SAL
,TSL_CHG
,TSL_CSH
,TSL_GC
,TSL_EPS
,TSL_TND
,TSL_MCRD
,TSL_VISA
,TSL_AMEX
,TSL_DINERS
,TSL_JBC
,TSL_OTCRD
,TSL_SV_CHG
,TSL_OT_CHG
,TSL_FT
,TSL_LT
,TSL_NT
,TSL_BEG_INV
,TSL_END_INV
,TSL_TC_CASH
,TSL_TC_GC
,TSL_TC_EPS
,TSL_TC_TND
,TSL_TC_MCD
,TSL_TC_VIS
,TSL_TC_AMX
,TSL_TC_DIN
,TSL_TC_JBC
,TSL_TC_OC
,TSL_MCH
,TSL_SRL
,TSL_ZCNT
,TSL_TIME
,TSL_DTE
Here's a script to create the sample tables and data
USE [LandLord]
GO
/****** Object: Table [dbo].[mLandlordStore] Script Date: 04/25/2013 20:21:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[mLandlordStore](
[IDNumber] [int] IDENTITY(1,1) NOT NULL,
[sStoreNumber] [nvarchar](50) NOT NULL,
[sLessee] [nvarchar](50) NOT NULL,
[sLesseeNumber] [int] NOT NULL,
[sHOGenerated] [varchar](1) NOT NULL,
[LastTranNo] [int] NULL,
[sSpace] [nvarchar](50) NULL,
[sMallCode] [nvarchar](20) NULL,
[sTenantNumber] [nvarchar](20) NULL,
[sClassCode] [nvarchar](20) NULL,
[sTradeCode] [nvarchar](20) NULL,
[sOutletNumber] [nvarchar](20) NULL,
[nSaleType] [int] NULL,
[BatchCount] [int] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[mLandlordStore] ON
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (1, N'40', N'SMCOIN', 11002558, N'Y', 0, N'01', N'72', N'011002559', N'01', N'SAP', N'03', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (3, N'1033', N'SMCOIN', 103312345, N'Y', 0, N'01', N'73', N'7312345', N'01', N'SAP', N'04', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (4, N'1133', N'ACI', 113312345, N'Y', 0, N'01', N'74', N'7412345', N'01', N'SAP', N'05', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (5, N'1233', N'ALI', 123312345, N'Y', 0, N'01', N'75', N'7512345', N'01', N'SAP', N'06', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (6, N'1333', N'MWC', 133312345, N'Y', 0, N'01', N'76', N'7612345', N'01', N'SAP', N'07', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (7, N'1433', N'OCLP', 143312345, N'Y', 0, N'01', N'77', N'7712345', N'01', N'SAP', N'08', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (8, N'1533', N'RLC', 153312345, N'Y', 0, N'01', N'78', N'7812345', N'01', N'SAP', N'09', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (9, N'1633', N'SLE', 163312345, N'Y', 0, N'01', N'79', N'7912345', N'01', N'SAP', N'10', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (10, N'1733', N'STAR', 173312345, N'Y', 0, N'01', N'80', N'8012345', N'01', N'SAP', N'11', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (11, N'1833', N'WM', 183312345, N'Y', 0, N'01', N'81', N'8112345', N'01', N'SAP', N'12', 1, 0)
INSERT [dbo].[mLandlordStore] ([IDNumber], [sStoreNumber], [sLessee], [sLesseeNumber], [sHOGenerated], [LastTranNo], [sSpace], [sMallCode], [sTenantNumber], [sClassCode], [sTradeCode], [sOutletNumber], [nSaleType], [BatchCount]) VALUES (12, N'1933', N'FSI', 193312345, N'Y', 0, N'01', N'82', N'8212345', N'01', N'SAP', N'13', 1, 0)
SET IDENTITY_INSERT [dbo].[mLandlordStore] OFF
/****** Object: Default [DF_mLandlordStore_LastTranNo] Script Date: 04/25/2013 20:21:42 ******/
ALTER TABLE [dbo].[mLandlordStore] ADD CONSTRAINT [DF_mLandlordStore_LastTranNo] DEFAULT ((1)) FOR [LastTranNo]
GO
USE [LandLord]
GO
/****** Object: Table [dbo].[TermZTran] Script Date: 04/25/2013 20:19:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TermZTran](
[HeaderID] [uniqueidentifier] NOT NULL,
[WorkDate] [smalldatetime] NOT NULL,
[ProcessDate] [smalldatetime] NOT NULL,
[ProcessMode] [nvarchar](10) NOT NULL,
[POSCount] [int] NULL,
[SalePharma] [money] NULL,
[SaleNonPharma] [money] NULL,
[VoidAmount] [money] NULL,
[VoidCount] [int] NULL,
[ZCOUNTER] [nvarchar](4000) NULL,
[STORE] [nvarchar](4000) NULL,
[POS] [nvarchar](4000) NULL,
[DATE] [nvarchar](300) NULL,
[TIME] [nvarchar](300) NULL,
[OGTOTAL] [nvarchar](300) NULL,
[NGTOTAL] [nvarchar](300) NULL,
[BEGSI] [nvarchar](300) NULL,
[LASSI] [nvarchar](300) NULL,
[TSALES] [nvarchar](300) NULL,
[QTYREGULAR] [nvarchar](300) NULL,
[SALESREGULAR] [nvarchar](300) NULL,
[QTYSCD20] [nvarchar](300) NULL,
[SALESCD20] [nvarchar](300) NULL,
[QTYSCD5] [nvarchar](300) NULL,
[SALESCD5] [nvarchar](300) NULL,
[QTYPWD] [nvarchar](300) NULL,
[SALEPWD] [nvarchar](300) NULL,
[QTYTGOVT] [nvarchar](300) NULL,
[SALESTGOVT] [nvarchar](300) NULL,
[QTYZERORATED] [nvarchar](300) NULL,
[SALESZERORATED] [nvarchar](300) NULL,
[QTYVATEXEMPT] [nvarchar](300) NULL,
[SALESVATEXEMPT] [nvarchar](300) NULL,
[TDISCOUNT] [nvarchar](300) NULL,
[DISCREGULARQTY] [nvarchar](300) NULL,
[DISCREGULARAMT] [nvarchar](300) NULL,
[DISCSCD20QTY] [nvarchar](300) NULL,
[DISCSCD20AMT] [nvarchar](300) NULL,
[DISCSCD5QTY] [nvarchar](300) NULL,
[DISCSCD5AMT] [nvarchar](300) NULL,
[DISCPWD20QTY] [nvarchar](300) NULL,
[DISCPWD20AMT] [nvarchar](300) NULL,
[DISCPWD5QTY] [nvarchar](300) NULL,
[DISCPWD5AMT] [nvarchar](300) NULL,
[DNETSALES] [nvarchar](300) NULL,
[DGROSSSALES] [nvarchar](300) NULL,
[SALESACCOUNTABILITY] [nvarchar](300) NULL,
[VOIDTRANQTY] [nvarchar](300) NULL,
[VOIDTRANAMT] [nvarchar](300) NULL,
[ITEMVOIDQTY] [nvarchar](300) NULL,
[ITEMVOIDAMT] [nvarchar](300) NULL,
[TICKETRETQTY] [nvarchar](300) NULL,
[TICKETRETAMT] [nvarchar](300) NULL,
[ITEMRETQTY] [nvarchar](300) NULL,
[ITEMRETAMT] [nvarchar](300) NULL,
[ADDLOANTOTQTY] [nvarchar](300) NULL,
[ADDLOANTOTAMT] [nvarchar](300) NULL,
[TENDERCASHQTY] [nvarchar](300) NULL,
[TENDERCASHAMT] [nvarchar](300) NULL,
[TENDERATMOFFLINEQTY] [nvarchar](300) NULL,
[TENDERATMOFFLINEAMT] [nvarchar](300) NULL,
[TENDERCHRGOFFLINEQTY] [nvarchar](300) NULL,
[TENDERCHRGOFFLINEAMT] [nvarchar](300) NULL,
[TENDERCHKQTY] [nvarchar](300) NULL,
[TENDERCHKAMT] [nvarchar](300) NULL,
[TENDERBDOREBATESQTY] [nvarchar](300) NULL,
[TENDERBDOREBATESAMT] [nvarchar](300) NULL,
[OVERTENDERQTY] [nvarchar](300) NULL,
[OVERTENDERAMT] [nvarchar](300) NULL,
[OTHERTENDERQTY] [nvarchar](300) NULL,
[OTHERTENDERAMT] [nvarchar](300) NULL,
[TENDERCCMQTY] [nvarchar](300) NULL,
[TENDERCCMAMT] [nvarchar](300) NULL,
[TENDERARCODQTY] [nvarchar](300) NULL,
[TENDERARCODAMT] [nvarchar](300) NULL,
[TENDERADBQTY] [nvarchar](300) NULL,
[TENDERADBAMT] [nvarchar](300) NULL,
[TENDERFWV5QTY] [nvarchar](300) NULL,
[TENDERFWV5AMT] [nvarchar](300) NULL,
[TENDEREWT1QTY] [nvarchar](300) NULL,
[TENDEREWT1AMT] [nvarchar](300) NULL,
[TENDERTOP20KQTY] [nvarchar](300) NULL,
[TENDERTOP20KAMT] [nvarchar](300) NULL,
[CCARDATMCHRGONLINEQTY] [nvarchar](300) NULL,
[CCARDATMCHRGONLINEAMT] [nvarchar](300) NULL,
[OTHTENDERSMGCQTY] [nvarchar](300) NULL,
[OTHTENDERSMGCAMT] [nvarchar](300) NULL,
[OTHTENDERSODEXOQTY] [nvarchar](300) NULL,
[OTHTENDERSODEXOAMT] [nvarchar](300) NULL,
[OTHTENDERCORPACCQTY] [nvarchar](300) NULL,
[OTHTENDERCORPACCAMT] [nvarchar](300) NULL,
[OTHTENDERDIFFEREDQTY] [nvarchar](300) NULL,
[OTHTENDERDIFFEREDAMT] [nvarchar](300) NULL,
[TENDERTOTAL] [nvarchar](300) NULL,
[VATSALEAMT] [nvarchar](300) NULL,
[VATSALETAXVALUE] [nvarchar](300) NULL,
[VATEXSALEAMT] [nvarchar](300) NULL,
[VATEXSALETAXVALUE] [nvarchar](300) NULL,
[ZERORATEDSALEAMT] [nvarchar](300) NULL,
[ZERORATEDSALETAXVALUE] [nvarchar](300) NULL,
[TOTALAMT] [nvarchar](300) NULL,
[TOTALTAXVALUE] [nvarchar](300) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[TermZTran] ([HeaderID], [WorkDate], [ProcessDate], [ProcessMode], [POSCount], [SalePharma], [SaleNonPharma], [VoidAmount], [VoidCount], [ZCOUNTER], [STORE], [POS], [DATE], [TIME], [OGTOTAL], [NGTOTAL], [BEGSI], [LASSI], [TSALES], [QTYREGULAR], [SALESREGULAR], [QTYSCD20], [SALESCD20], [QTYSCD5], [SALESCD5], [QTYPWD], [SALEPWD], [QTYTGOVT], [SALESTGOVT], [QTYZERORATED], [SALESZERORATED], [QTYVATEXEMPT], [SALESVATEXEMPT], [TDISCOUNT], [DISCREGULARQTY], [DISCREGULARAMT], [DISCSCD20QTY], [DISCSCD20AMT], [DISCSCD5QTY], [DISCSCD5AMT], [DISCPWD20QTY], [DISCPWD20AMT], [DISCPWD5QTY], [DISCPWD5AMT], [DNETSALES], [DGROSSSALES], [SALESACCOUNTABILITY], [VOIDTRANQTY], [VOIDTRANAMT], [ITEMVOIDQTY], [ITEMVOIDAMT], [TICKETRETQTY], [TICKETRETAMT], [ITEMRETQTY], [ITEMRETAMT], [ADDLOANTOTQTY], [ADDLOANTOTAMT], [TENDERCASHQTY], [TENDERCASHAMT], [TENDERATMOFFLINEQTY], [TENDERATMOFFLINEAMT], [TENDERCHRGOFFLINEQTY], [TENDERCHRGOFFLINEAMT], [TENDERCHKQTY], [TENDERCHKAMT], [TENDERBDOREBATESQTY], [TENDERBDOREBATESAMT], [OVERTENDERQTY], [OVERTENDERAMT], [OTHERTENDERQTY], [OTHERTENDERAMT], [TENDERCCMQTY], [TENDERCCMAMT], [TENDERARCODQTY], [TENDERARCODAMT], [TENDERADBQTY], [TENDERADBAMT], [TENDERFWV5QTY], [TENDERFWV5AMT], [TENDEREWT1QTY], [TENDEREWT1AMT], [TENDERTOP20KQTY], [TENDERTOP20KAMT], [CCARDATMCHRGONLINEQTY], [CCARDATMCHRGONLINEAMT], [OTHTENDERSMGCQTY], [OTHTENDERSMGCAMT], [OTHTENDERSODEXOQTY], [OTHTENDERSODEXOAMT], [OTHTENDERCORPACCQTY], [OTHTENDERCORPACCAMT], [OTHTENDERDIFFEREDQTY], [OTHTENDERDIFFEREDAMT], [TENDERTOTAL], [VATSALEAMT], [VATSALETAXVALUE], [VATEXSALEAMT], [VATEXSALETAXVALUE], [ZERORATEDSALEAMT], [ZERORATEDSALETAXVALUE], [TOTALAMT], [TOTALTAXVALUE]) VALUES (N'35a9637c-4342-4cb4-8f10-1c1d52b09cd4', CAST(0xA1A20000 AS SmallDateTime), CAST(0xA1A80478 AS SmallDateTime), N'sqljob', 1, 0.0000, 0.0000, 0.0000, 0, N'0001', N'0040', N'001', N'16/04/2013', N'19:06', N'0.00', N'73420.22', N'0000000001', N'0000000078', N'69827.81', N'75', N'48543.85', N'7', N'15683.96', N'4', N'940.00', N'6', N'4520.00', N'0', N'0.00', N'0', N'0.00', N'1', N'140.00', N'8283.98', N'30', N'4361.04', N'7', N'3136.79', N'4', N'41.96', N'3', N'723.21', N'3', N'20.98', N'56502.49', N'73420.22', N'61760.30', N'3', N'5815.95', N'-33', N'-1282.50', N'-14', N'-5886.00', N'-151', N'-3923.18', N'2', N'6000.00', N'68', N'46045.65', N'1', N'67.50', N'3', N'751.75', N'1', N'3200.00', N'2', N'310.82', N'2', N'-3.00', N'3', N'0.03', N'0', N'0.00', N'0', N'0.00', N'0', N'0', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'11', N'9096.12', N'5', N'800.00', N'5', N'450.00', N'1', N'1041.43', N'0', N'0.00', N'61760.30', N'43815.32', N'5257.81', N'15823.96', N'0.00', N'0.00', N'0.00', N'59639.28', N'5257.81')
INSERT [dbo].[TermZTran] ([HeaderID], [WorkDate], [ProcessDate], [ProcessMode], [POSCount], [SalePharma], [SaleNonPharma], [VoidAmount], [VoidCount], [ZCOUNTER], [STORE], [POS], [DATE], [TIME], [OGTOTAL], [NGTOTAL], [BEGSI], [LASSI], [TSALES], [QTYREGULAR], [SALESREGULAR], [QTYSCD20], [SALESCD20], [QTYSCD5], [SALESCD5], [QTYPWD], [SALEPWD], [QTYTGOVT], [SALESTGOVT], [QTYZERORATED], [SALESZERORATED], [QTYVATEXEMPT], [SALESVATEXEMPT], [TDISCOUNT], [DISCREGULARQTY], [DISCREGULARAMT], [DISCSCD20QTY], [DISCSCD20AMT], [DISCSCD5QTY], [DISCSCD5AMT], [DISCPWD20QTY], [DISCPWD20AMT], [DISCPWD5QTY], [DISCPWD5AMT], [DNETSALES], [DGROSSSALES], [SALESACCOUNTABILITY], [VOIDTRANQTY], [VOIDTRANAMT], [ITEMVOIDQTY], [ITEMVOIDAMT], [TICKETRETQTY], [TICKETRETAMT], [ITEMRETQTY], [ITEMRETAMT], [ADDLOANTOTQTY], [ADDLOANTOTAMT], [TENDERCASHQTY], [TENDERCASHAMT], [TENDERATMOFFLINEQTY], [TENDERATMOFFLINEAMT], [TENDERCHRGOFFLINEQTY], [TENDERCHRGOFFLINEAMT], [TENDERCHKQTY], [TENDERCHKAMT], [TENDERBDOREBATESQTY], [TENDERBDOREBATESAMT], [OVERTENDERQTY], [OVERTENDERAMT], [OTHERTENDERQTY], [OTHERTENDERAMT], [TENDERCCMQTY], [TENDERCCMAMT], [TENDERARCODQTY], [TENDERARCODAMT], [TENDERADBQTY], [TENDERADBAMT], [TENDERFWV5QTY], [TENDERFWV5AMT], [TENDEREWT1QTY], [TENDEREWT1AMT], [TENDERTOP20KQTY], [TENDERTOP20KAMT], [CCARDATMCHRGONLINEQTY], [CCARDATMCHRGONLINEAMT], [OTHTENDERSMGCQTY], [OTHTENDERSMGCAMT], [OTHTENDERSODEXOQTY], [OTHTENDERSODEXOAMT], [OTHTENDERCORPACCQTY], [OTHTENDERCORPACCAMT], [OTHTENDERDIFFEREDQTY], [OTHTENDERDIFFEREDAMT], [TENDERTOTAL], [VATSALEAMT], [VATSALETAXVALUE], [VATEXSALEAMT], [VATEXSALETAXVALUE], [ZERORATEDSALEAMT], [ZERORATEDSALETAXVALUE], [TOTALAMT], [TOTALTAXVALUE]) VALUES (N'35a9637c-4342-4cb4-8f10-1c1d52b09cd4', CAST(0xA1A20000 AS SmallDateTime), CAST(0xA1A80478 AS SmallDateTime), N'sqljob', 2, 0.0000, 0.0000, 0.0000, 0, N'0001', N'0040', N'002', N'16/04/2013', N'19:06', N'0.00', N'60296.14', N'0000000001', N'0000000076', N'58336.24', N'61', N'44770.01', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'7', N'4597.00', N'15', N'8269.23', N'4', N'700.00', N'3890.95', N'17', N'3890.95', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'49572.91', N'60296.14', N'54445.29', N'2', N'186.00', N'-133', N'-3567.50', N'-7', N'-6661.50', N'-90', N'-2085.50', N'2', N'6000.00', N'66', N'39251.01', N'1', N'67.50', N'1', N'149.00', N'0', N'0.00', N'0', N'0.00', N'3', N'-22.68', N'10', N'3989.88', N'0', N'0.00', N'0', N'0.00', N'0', N'0', N'11', N'205.23', N'11', N'41.05', N'13', N'41.05', N'8', N'4323.75', N'9', N'2500.00', N'1', N'100.00', N'2', N'3799.50', N'0', N'0.00', N'54445.29', N'40603.68', N'4872.38', N'700.00', N'0.00', N'8269.23', N'0.00', N'49572.91', N'4872.38')
INSERT [dbo].[TermZTran] ([HeaderID], [WorkDate], [ProcessDate], [ProcessMode], [POSCount], [SalePharma], [SaleNonPharma], [VoidAmount], [VoidCount], [ZCOUNTER], [STORE], [POS], [DATE], [TIME], [OGTOTAL], [NGTOTAL], [BEGSI], [LASSI], [TSALES], [QTYREGULAR], [SALESREGULAR], [QTYSCD20], [SALESCD20], [QTYSCD5], [SALESCD5], [QTYPWD], [SALEPWD], [QTYTGOVT], [SALESTGOVT], [QTYZERORATED], [SALESZERORATED], [QTYVATEXEMPT], [SALESVATEXEMPT], [TDISCOUNT], [DISCREGULARQTY], [DISCREGULARAMT], [DISCSCD20QTY], [DISCSCD20AMT], [DISCSCD5QTY], [DISCSCD5AMT], [DISCPWD20QTY], [DISCPWD20AMT], [DISCPWD5QTY], [DISCPWD5AMT], [DNETSALES], [DGROSSSALES], [SALESACCOUNTABILITY], [VOIDTRANQTY], [VOIDTRANAMT], [ITEMVOIDQTY], [ITEMVOIDAMT], [TICKETRETQTY], [TICKETRETAMT], [ITEMRETQTY], [ITEMRETAMT], [ADDLOANTOTQTY], [ADDLOANTOTAMT], [TENDERCASHQTY], [TENDERCASHAMT], [TENDERATMOFFLINEQTY], [TENDERATMOFFLINEAMT], [TENDERCHRGOFFLINEQTY], [TENDERCHRGOFFLINEAMT], [TENDERCHKQTY], [TENDERCHKAMT], [TENDERBDOREBATESQTY], [TENDERBDOREBATESAMT], [OVERTENDERQTY], [OVERTENDERAMT], [OTHERTENDERQTY], [OTHERTENDERAMT], [TENDERCCMQTY], [TENDERCCMAMT], [TENDERARCODQTY], [TENDERARCODAMT], [TENDERADBQTY], [TENDERADBAMT], [TENDERFWV5QTY], [TENDERFWV5AMT], [TENDEREWT1QTY], [TENDEREWT1AMT], [TENDERTOP20KQTY], [TENDERTOP20KAMT], [CCARDATMCHRGONLINEQTY], [CCARDATMCHRGONLINEAMT], [OTHTENDERSMGCQTY], [OTHTENDERSMGCAMT], [OTHTENDERSODEXOQTY], [OTHTENDERSODEXOAMT], [OTHTENDERCORPACCQTY], [OTHTENDERCORPACCAMT], [OTHTENDERDIFFEREDQTY], [OTHTENDERDIFFEREDAMT], [TENDERTOTAL], [VATSALEAMT], [VATSALETAXVALUE], [VATEXSALEAMT], [VATEXSALETAXVALUE], [ZERORATEDSALEAMT], [ZERORATEDSALETAXVALUE], [TOTALAMT], [TOTALTAXVALUE]) VALUES (N'35a9637c-4342-4cb4-8f10-1c1d52b09cd4', CAST(0xA1A20000 AS SmallDateTime), CAST(0xA1A80478 AS SmallDateTime), N'sqljob', 3, 0.0000, 0.0000, 0.0000, 0, N'0001', N'0040', N'003', N'16/04/2013', N'19:06', N'0.00', N'0.00', N'0000000000', N'0000000000', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0.00', N'0.00', N'0.00', N'1', N'0.01', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0', N'0.00', N'0.00', N'0.00', N'0.00', N'0.00', N'0.00', N'0.00', N'0.00', N'0.00', N'0.00')
Please help...
You have quite weird data schema. Did you try to store numeric values as decimal rather than as nvarchar. Possible this may should help -
SELECT BR_CODE
,N_CHECK
,CLAS_C
,CLAS_TRD_C
,STOR_NO
,SUM(TSL_NEW_A) AS TSL_NEW_A
,SUM(TSL_OLD_A) AS TSL_OLD_A
,SalesType
,SUM(TSL_DAY_A) AS TSL_DAY_A
,SUM(TSL_DIS_A) AS TSL_DIS_A
,TSL_DIS_B = 0
,SUM(TSL_DIS_C) AS TSL_DIS_C
,TSL_DIS_D = 0
,SUM(TSL_DIS_E) AS TSL_DIS_E
,TSL_Dis_F = 0
,TSL_Dis_G = 0
,TSL_Dis_H = 0
,TSL_Dis_I = 0
,TSL_Dis_J = 0
,TSL_Dis_K = 0
,TSL_Dis_L = 0
,SUM(TSL_TAX_A) AS TSL_TAX_A
,TSL_TAX_B = 0
,TSL_ADJ_A = 0
,TSL_ADJ_POS = 0
,TS_ADJ_NEG = 0
,TSL_ADJ_NT_POS = 0
,TSL_ADJ_NT_NEG = 0
,SUM(TSL_NET_A) AS TSL_NET_A
,SUM(TSL_VOID) AS TSL_VOID
,SUM(TSL_RFND) AS TSL_RFND
,SUM(TSL_TX_SAL) AS TSL_TX_SAL
,SUM(TSL_NX_SAL) AS TSL_NX_SAL
,TSL_CHG
,SUM(TSL_CSH) AS TSL_CSH
,SUM(TSL_GC) AS TSL_GC
,TSL_EPS = 0
,TSL_TND = 0
,TSL_MCRD = 0
,TSL_VISA = 0
,TSL_AMEX = 0
,TSL_DINERS = 0
,TSL_JBC = 0
,TSL_OTCRD = 0
,TSL_SV_CHG = 0
,TSL_OT_CHG = 0
,SUM(TSL_FT) AS TSL_FT
,SUM(TSL_LT) AS TSL_LT
,SUM(TSL_NT) AS TSL_NT
,SUM(TSL_BEG_INV) AS TSL_BEG_INV
,SUM(TSL_END_INV) AS TSL_END_INV
,SUM(TSL_TC_CASH) AS TSL_TC_CASH
,SUM(TSL_TC_GC) AS TSL_TC_GC
,TSL_TC_EPS = 0
,TSL_TC_TND = 0
,TSL_TC_MCD = 0
,TSL_TC_VIS = 0
,TSL_TC_AMX = 0
,TSL_TC_DIN = 0
,TSL_TC_JBC = 0
,TSL_TC_OC = 0
,TSL_MCH = 0
,TSL_SRL = 0
,SUM(TSL_ZCNT) AS TSL_ZCNT
,TSL_TIME
,TSL_DTE
FROM(
SELECT
BR_CODE
, N_CHECK
, CLAS_C
, CLAS_TRD_C
, STOR_NO
, SUM(TSL_NEW_A) AS TSL_NEW_A
, SUM(TSL_OLD_A) AS TSL_OLD_A
, SalesType
, SUM(TSL_DAY_A) AS TSL_DAY_A
, SUM(TSL_DIS_A) AS TSL_DIS_A
, SUM(TSL_DIS_C) AS TSL_DIS_C
, SUM(TSL_DIS_E) AS TSL_DIS_E
, SUM(TSL_TAX_A) AS TSL_TAX_A
, SUM(TSL_NET_A) AS TSL_NET_A
, SUM(TSL_VOID) AS TSL_VOID
, SUM(TSL_RFND) AS TSL_RFND
, SUM(TSL_TX_SAL) AS TSL_TX_SAL
, SUM(TSL_NX_SAL) AS TSL_NX_SAL
, TSL_CHG
, SUM(TSL_CSH) AS TSL_CSH
, SUM(TSL_GC) AS TSL_GC
, SUM(TSL_FT) AS TSL_FT
, SUM(TSL_LT) AS TSL_LT
, SUM(TSL_NT) AS TSL_NT
, SUM(TSL_BEG_INV) AS TSL_BEG_INV
, SUM(TSL_END_INV) AS TSL_END_INV
, SUM(TSL_TC_CASH) AS TSL_TC_CASH
, SUM(TSL_TC_GC) AS TSL_TC_GC
, SUM(TSL_ZCNT) AS TSL_ZCNT
, TSL_TIME
, TSL_DTE
FROM (
SELECT
BR_CODE = 0
, N_CHECK = 0
, CLAS_C = 0
, CLAS_TRD_C = 0
, STOR_NO = 0
, TSL_NEW_A = SUM(CAST(NGTOTAL AS DECIMAL(16,2)) + CAST(OGTOTAL AS DECIMAL(16,2)))
, TSL_OLD_A = SUM(CAST(OGTOTAL AS DECIMAL(16,2)))
, SalesType = 0
, SUM(((CAST(SALESREGULAR AS DECIMAL(16,2)) - CAST(SALESVATEXEMPT AS DECIMAL(16,2))) +
CAST(SALESCD20 AS DECIMAL(16,2)) +
CAST(SALESCD5 AS DECIMAL(16,2)) +
CAST(SALEPWD AS DECIMAL(16,2)) +
CAST(SALESTGOVT AS DECIMAL(16,2)) +
CAST(SALESZERORATED AS DECIMAL(16,2)) +
CAST(DISCREGULARAMT AS DECIMAL(16,2)) +
CAST(DISCSCD20AMT AS DECIMAL(16,2)) +
CAST(DISCSCD5AMT AS DECIMAL(16,2)) +
CAST(DISCPWD20AMT AS DECIMAL(16,2)) +
CAST(DISCPWD5AMT AS DECIMAL(16,2)) +
CAST(VOIDTRANAMT AS DECIMAL(16,2)) +
CAST(ITEMVOIDAMT AS DECIMAL(16,2)) +
CAST(TICKETRETAMT AS DECIMAL(16,2)) +
CAST(ITEMRETAMT AS DECIMAL(16,2)))/1.12) + CAST(SALESVATEXEMPT AS DECIMAL(16,2)) AS TSL_DAY_A --SUM(cast(round((cast(TSALES as decimal)/1.12),2) AS DECIMAL(16,2))) AS TSL_DAY_A --Help
,SUM(ABS(CAST(DISCREGULARAMT AS DECIMAL(16,2)))) AS TSL_DIS_A
,SUM(CAST(DISCSCD20AMT AS DECIMAL(16,2)) + CAST(DISCSCD5AMT AS DECIMAL(16,2))) AS TSL_DIS_C
,SUM(CAST(DISCSCD20AMT AS DECIMAL(16,2)) + CAST(DISCSCD5AMT AS DECIMAL(16,2))) AS TSL_DIS_E
,SUM(CAST(VATSALEAMT AS DECIMAL(16,2))) AS TSL_TAX_A
,SUM(CAST(DGROSSSALES AS DECIMAL(16,2)) - CAST(TOTALTAXVALUE AS DECIMAL(16,2))) AS TSL_NET_A --Help
,SUM(CAST(VOIDTRANAMT AS DECIMAL(16,2))) AS TSL_VOID
,SUM(ABS(CAST(ITEMRETAMT AS DECIMAL(16,2)))) AS TSL_RFND
,SUM(((CAST(SALESREGULAR AS DECIMAL(16,2)) + CAST(SALESVATEXEMPT AS DECIMAL(16,2))) +
CAST(SALESCD20 AS DECIMAL(16,2)) +
CAST(SALESCD5 AS DECIMAL(16,2)) +
CAST(SALEPWD AS DECIMAL(16,2)) +
CAST(SALESTGOVT AS DECIMAL(16,2)) +
CAST(SALESZERORATED AS DECIMAL(16,2)) +
CAST(DISCREGULARAMT AS DECIMAL(16,2)) +
CAST(DISCSCD20AMT AS DECIMAL(16,2)) +
CAST(DISCSCD5AMT AS DECIMAL(16,2)) +
CAST(DISCPWD20AMT AS DECIMAL(16,2)) +
CAST(DISCPWD5AMT AS DECIMAL(16,2)) +
CAST(VOIDTRANAMT AS DECIMAL(16,2)) +
CAST(ITEMVOIDAMT AS DECIMAL(16,2)) +
CAST(TICKETRETAMT AS DECIMAL(16,2)) +
CAST(ITEMRETAMT AS DECIMAL(16,2)))) AS TSL_TX_SAL --Help
,(CAST(SALESVATEXEMPT AS DECIMAL(16,2)) + (CAST(ZERORATEDSALEAMT AS DECIMAL(16,2)) - CAST(ZERORATEDSALETAXVALUE AS DECIMAL(16,2)))) AS TSL_NX_SAL
,SUM(CAST(CCARDATMCHRGONLINEAMT AS DECIMAL(16,2))) AS TSL_CHG --Help
,SUM(CAST(TENDERCASHAMT AS DECIMAL(16,2))) AS TSL_CSH
,SUM(CAST(OTHTENDERSMGCAMT AS DECIMAL(16,2)) + CAST(OTHTENDERSODEXOAMT AS DECIMAL(16,2))) AS TSL_GC --+ CAST(TENDERCHKAMT AS DECIMAL) AS TSL_GC
,SUM(CAST(ABS(BEGSI) AS INT)) AS TSL_FT
,SUM(CAST(ABS(LASSI) AS INT)) AS TSL_LT
,SUM(CAST((CAST(QTYREGULAR AS DECIMAL(18,2)) + CAST(QTYSCD20 AS DECIMAL(18,2)) + CAST(QTYSCD5 AS DECIMAL(18,2)) + CAST(QTYPWD AS DECIMAL(18,2)) + CAST(QTYTGOVT AS DECIMAL(18,2)) + CAST(QTYZERORATED AS DECIMAL(18,2))
+ CAST(QTYVATEXEMPT AS DECIMAL(18,2)) + CAST(DISCREGULARQTY AS DECIMAL(18,2)) + CAST(DISCSCD20QTY AS DECIMAL(18,2)) + CAST(DISCSCD5QTY AS DECIMAL(18,2)) + CAST(DISCPWD20QTY AS DECIMAL(18,2))
+ CAST(DISCPWD5QTY AS DECIMAL(18,2)) + CAST(VOIDTRANQTY AS DECIMAL(18,2)) + CAST(ITEMVOIDQTY AS DECIMAL(18,2))*-1 + CAST(TICKETRETQTY AS DECIMAL(18,2))*-1 + CAST(ITEMRETQTY AS DECIMAL(18,2))*-1
+ CAST(ADDLOANTOTQTY AS DECIMAL(18,2))) AS INT)) AS TSL_NT
,SUM(CAST(ABS(BEGSI) AS INT)) AS TSL_BEG_INV
,SUM(CAST(ABS(LASSI) AS INT)) AS TSL_END_INV
,SUM(CAST(QTYREGULAR AS INT)) as TSL_TC_CASH
,SUM(CAST(OTHTENDERSMGCQTY AS INT) + CAST(OTHTENDERSODEXOQTY AS INT)) AS TSL_TC_GC
,SUM(CAST(ABS(ZCOUNTER) AS INT)) AS TSL_ZCNT
,RIGHT('00'+RTRIM(CAST(DATEPART(HH,GETDATE())AS VARCHAR(5))),2)+RIGHT('00'+RTRIM(CAST(DATEPART(MI,GETDATE()) AS VARCHAR(5))),2)+RIGHT('00'+RTRIM(CAST(DATEPART(SS,GETDATE()) AS VARCHAR(5))),2) AS TSL_TIME
,SUBSTRING(convert(varchar,WorkDate,111),6,2)+Right(convert(varchar,WorkDate,111),2)+left(convert(varchar,WorkDate,111),4) AS TSL_DTE
FROM dbo.TermZTran t
LEFT JOIN (
SELECT sLessee, sTenantNumber AS TenantCode, sStoreNumber
FROM mLandlordStore
) tInfo ON t.STORE = tInfo.sStoreNumber
WHERE CAST(t.Store AS INT) = CAST(#branchcode AS INT)
AND tInfo.sLessee = #lesseeCode
AND CONVERT(nvarchar(10),t.WorkDate,101) = #trandate
AND CONVERT(nvarchar(10),t.WorkDate,101) = '04/16/2013'
AND CAST(BR_CODE AS INT) = CAST('0040' AS INT)
GROUP BY
SALESVATEXEMPT
, ZERORATEDSALEAMT
, ZERORATEDSALETAXVALUE
, WorkDate
) tFinal
GROUP BY
BR_CODE
,N_CHECK
,CLAS_C
,CLAS_TRD_C
,STOR_NO
,TSL_NEW_A
,TSL_OLD_A
,SalesType
,TSL_DAY_A
,TSL_DIS_A
,TSL_DIS_C
,TSL_DIS_E
,TSL_TAX_A
,TSL_NET_A
,TSL_VOID
,TSL_RFND
,TSL_TX_SAL
,TSL_NX_SAL
,TSL_CHG
,TSL_CSH
,TSL_GC
,TSL_FT
,TSL_LT
,TSL_NT
,TSL_BEG_INV
,TSL_END_INV
,TSL_TC_CASH
,TSL_TC_GC
,TSL_ZCNT
,TSL_TIME
,TSL_DTE
) dt
GROUP BY
dt.BR_CODE
,dt.CLAS_C
,dt.CLAS_TRD_C
,dt.N_CHECK
,dt.STOR_NO
,dt.SalesType
,TSL_DAY_A
,TSL_DIS_A
,TSL_DIS_C
,TSL_DIS_E
,TSL_TAX_A
,TSL_NET_A
,TSL_VOID
,TSL_RFND
,TSL_TX_SAL
,TSL_NX_SAL
,TSL_CHG
,TSL_CSH
,TSL_GC
,TSL_FT
,TSL_LT
,TSL_NT
,TSL_BEG_INV
,TSL_END_INV
,TSL_TC_CASH
,TSL_TC_GC
,TSL_ZCNT
,TSL_TIME
,TSL_DTE

Resources