Sorry, I started using it for a training app and chucked it because I am so reliant on stored procs it irritated the hell out of me. Coding up all the queries in c# as strings was excruciating. I would seriously look at EF if I had to use it, and I hate EF!
Never underestimate the power of human stupidity
I have used it a small amount and it seems fairly good as a database engine.
As an afterthought, if you write your code in a layered manner you should be ably to create something that is database agnostic. You could then experiment with different databases to see which one suits your needs.
“That which can be asserted without evidence, can be dismissed without evidence.”
At least at one time Microsoft allowed SQL Server to be used for free for smaller businesses. Figuring that out can be difficult but might be worth it.
The normal goto for free alternatives is MySQL but you should look at the license for that, but an alternative which might be even better now is one that started as a fork of MySQL which is MariaDB.
Those however are 'servers' and an embedded database might serve your application better. But you might want to make sure that your application will never have a need to have multiple clients and one server.
If I've understood your question properly, you're looking to concatenate row values rather than PIVOT them.
This article[^] covers most of the options. For example, the black-box XML method:
SELECT',' + Site
FROM YourTable As I
WHERE I.DataPoint = O.DataPoint
FOR XML PATH(''), TYPE
-- Remove the first comma:
, 1, 1, ''
) As Sites
YourTable As O
Thank you, but, no. Not concatenation.
I need the CH and KC to be the column headers.
What I have is 1400 data points and 4 sites; in theory, all sites SHOULD have the same datapoints, but... they don't.
I need to create a matrix of datapoints and sites to show what is there and what isn't.
What I've presented is the simplified version, but the concept is correct.
as (select p.ID_Pelanggan
,casewhen p.Status_Pelanggan=2 then'Aktip'else'Non Aktip'end'Status'from PELANGGAN p),
as (select g.ID_Pelanggan
from GANTI_Log g)
from pel p leftouterjoin ganti g