Skip to content

Instantly share code, notes, and snippets.

@butler1233
Created September 17, 2018 09:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save butler1233/d66e615b2c293beac2608a4d9e58b0d9 to your computer and use it in GitHub Desktop.
Save butler1233/d66e615b2c293beac2608a4d9e58b0d9 to your computer and use it in GitHub Desktop.
A kinda painful SELECT Statement
SELECT
iif(it.OriginalTitle is null,iif(el.IsVariation = 'True' OR elo.IsVariation = 'True',elvis.ItemTitle,iif(el.ItemTitle is null,iif(elo.ItemTitle is null,'Unknown Title',elo.ItemTitle),el.ItemTitle)),it.OriginalTitle) as UltimateTitle
,od.Source as Source
,od.Subsource as SubSource
,oi.ChannelSku as ChannelSku
,SUM(oi.nqty) as ItemsSold
,COUNT(od.nOrderId) as OrderCount
,SUM(iif((ol.OrderLineCount > 1) OR (oi.nqty>1),1,0)) as MultiOrderCount
,SUM(iif(ml.OtherOrderLines is null,0,1)) as MixedOrders
,AVG(oi.fPricePerUnit) as AveragePricePer
,MIN(od.fPostageCost) as MinimumShipping
,MAX(od.nOrderId) as ExampleOrder
,si.ItemNumber as Sku
,IIF(od.source='EBAY', oi.ItemNumber, cl.ChannelReferenceId) as ebItemNumber
FROM [dbo].[orderItem] oi
JOIN [dbo].[order] od on oi.fkOrderId=od.pkOrderId
JOIN (SELECT COUNT(*) as OrderLineCount, fkOrderId from [dbo].[orderItem] where fPricePerUnit > 0 group by fkOrderID ) ol on ol.fkOrderID = oi.fkOrderID
JOIN [dbo].[stockItem] si on si.pkStockItemId=oi.fkStockItemId_Processed
LEFT JOIN [order].[item_channel_title] it on oi.fkChannelTitleId=it.pkTitleId --Amazon title: it.OriginalTitle
LEFT JOIN [dbo].[Stock_ChannelList] cl on cl.ItemTitle=it.OriginalTitle and cl.Source = od.Source and cl.SubSource = od.SubSource
LEFT JOIN [dbo].Automation_eBayListing el on el.ItemNumber = oi.ItemNumber--eBay title for active listing: el.ItemTitle
LEFT JOIN [dbo].Automation_eBayListing elo on elo.RelistedFromItemNumber = oi.ItemNumber--eBay title for active listing: el.ItemTitle
LEFT JOIN [dbo].[Automation_EbayListing_Variaitions] elvis on elvis.fkStockItemId = oi.fkStockItemId_processed and elvis.ItemNumber = oi.ItemNumber and elvis.sku = oi.ChannelSKU
LEFT JOIN (SELECT fkOrderId, Count(*) as OtherOrderLines from [dbo].[orderitem] JOIN [dbo].[StockItem] on fkStockItemId_processed = pkStockItemId where not ({SkuSelector("StockItem.ItemNumber")}) and fPricePerUnit > 0 group by fkOrderId) ml on ml.fkOrderID = oi.fkOrderID
WHERE
od.dProcessedOn > '{_StartDate.ToString("yyyy-MM-dd")} 00:00:00'
and od.dProcessedOn < '{_EndDate.ToString("yyyy-MM-dd")} 23:59:59'
and ({SkuSelector("si.ItemNumber")})
and oi.fPricePerUnit > 0
GROUP BY
od.source
,od.SubSource
,iif(it.OriginalTitle is null,iif(el.IsVariation = 'True' OR elo.IsVariation = 'True',elvis.ItemTitle,iif(el.ItemTitle is null,iif(elo.ItemTitle is null,'Unknown Title',elo.ItemTitle),el.ItemTitle)),it.OriginalTitle)
,oi.ChannelSKU
,si.ItemNumber
,IIF(od.source='EBAY', oi.ItemNumber, cl.ChannelReferenceId)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment