| 
|  | 
| 
| If the vendor won't support their own product, which you have presumably paid for, then demand a refund and find a better alternative. 
 
 
 "These people looked deep within my soul and assigned me a number based on the order in which I joined."
 - Homer
 
 
 |  |  |  | 
| 
|  | 
| 
| I struggled with this in the past, like 10 years ago, and it's been quite awhile since I've needed something like this. I'm trying to get the count, the number of records that meet this criteria. But I get an array of records because of the JOIN.I searched the internet, but didn't really see anything that came close, or the examples were very simple. I don't really need anything in SELECT, except the count. $designerId is PHP 8 
 
SELECT
    project.project_no,
    COUNT(commission_summary.project_no)                            
    FROM project 
    INNER JOIN commission_summary ON commission_summary.project_no = project.project_no             
    WHERE project.sales_no = '$designerId' 
    AND (project.status = 'construction' OR project.status = 'finished') 
    AND (commission_summary.startup_check_date is NULL OR CONVERT(char(10), commission_summary.startup_check_date, 120) = '1900-01-01' OR CONVERT(char(10), commission_summary.startup_check_date, 120) >= '2021-01-01') 
    AND (commission_summary.finished_check_date is NULL OR CONVERT(char(10), commission_summary.finished_check_date, 120) = '1900-01-01' OR CONVERT(char(10), commission_summary.finished_check_date, 120) >= DATEADD(month, -1, GETDATE()) )
    GROUP BY project.project_noIf it ain't broke don't fix it 
Discover my world at jkirkerx.com
 |  |  |  | 
| 
|  | 
| 
| You could use a CTE to identify the records that match then count. Bit hard to help without sample data though. Example: 
;with cte as 
(
	SELECT distinct
    p.project_no
    FROM @project p
    INNER JOIN @commission_summary cs ON cs.project_no = p.project_no             
    WHERE p.sales_no = @designerId 
    AND (p.status = 'construction' OR p.status = 'finished') 
    AND (cs.startup_check_date is NULL OR CONVERT(char(10), cs.startup_check_date, 120) = '1900-01-01' OR CONVERT(char(10), cs.startup_check_date, 120) >= '2021-01-01') 
    AND (cs.finished_check_date is NULL OR CONVERT(char(10), cs.finished_check_date, 120) = '1900-01-01' OR CONVERT(char(10), cs.finished_check_date, 120) >= DATEADD(month, -1, GETDATE()) )
)    
select COUNT(*)                            
from cteI would question all those
 CONVERTs - surelycommission_summary.startup_check_dateis adatenot a string?
 |  |  |  | 
| 
|  | 
| 
| That's a pretty good idea, I'll give it a try. 
 I knew somebody would question the converts. It's a PHP program, and PHP8 doesn't support SmallDateTime very well.  I'm rewriting a companies PHP4 app written from 2003 to 2012, and I didn't want to change the database because it has 26 gigs of data. I needed a consistent way of working with dates already written, so I choose the ISO120 format. ISO120 just makes it easier to fabricate new dates, and do comparisons in PHP8.
 
 Let me try out your ideas.
 
 If it ain't broke don't fix it 
Discover my world at jkirkerx.com
 |  |  |  | 
| 
|  | 
| 
| Thanks @Chill60 
 Works like a champ!
 
 I thought more about what you said about dates and strings. I've concluded that in PHP8, or really what's stored in the database (SQL Server) as a Date or DATETIME column, is just a string formatted to a particular ISO format, labeled as something special or unique. I could be wrong here, there really isn't much help or support available, and I'm on my own here with PHP8. I've seemed to have gone so far beyond the common PHP programmer, that I'm in uncharted waters.
 
 This code gets a list of qualified swimming pool designers that have actual projects (Swimming Pools) to pay commission on, so they get their paycheck. I got tired of going through the entire pool of designers that didn't have projects to test with.
 
 
$designerId = (rtrim($row1[0]));
$query2 = "
WITH cte AS 
(
    SELECT distinct
    project.project_no
    FROM project
    RIGHT JOIN commission_summary ON commission_summary.project_no = project.project_no<br />
    WHERE project.sales_no = '$designerId'
    AND (project.status = 'construction' OR project.status = 'finished') 
    AND (commission_summary.startup_check_date is NULL OR CONVERT(char(10), commission_summary.startup_check_date, 120) = '1900-01-01' OR CONVERT(char(10), commission_summary.startup_check_date, 120) >= '2021-01-01') 
    AND (commission_summary.finished_check_date is NULL OR CONVERT(char(10), commission_summary.finished_check_date, 120) = '1900-01-01' OR CONVERT(char(10), commission_summary.finished_check_date, 120) >= DATEADD(month, -1, GETDATE()) )
)<br />
SELECT COUNT(*) FROM cte";
$result2 = sqlsrv_query($conn, $query2) or die(" getDesignersWithProjectsKeyValuesByLastName " . LINE . " - " . $query2 . " - "  .  print_r(sqlsrv_errors()));
if (sqlsrv_has_rows($result2)) {
    $row2 = sqlsrv_fetch_array($result2);
    $projectCount = $row2[0];
    if ($projectCount > 0) {
        $keyValue = new KeyValue();
        $keyValue->setKey(rtrim($row1[1]));
        $keyValue->setValue(rtrim($row1[0]));
        $keyValues->add($keyValue);
    }
}If it ain't broke don't fix it 
Discover my world at jkirkerx.com
 |  |  |  | 
| 
|  | 
| 
| Nope - it's stored on the database as a date in 3 bytes and no formatting takes place at all - formatting of dates only takes place when they are being displayed.Quote:what's stored in the database (SQL Server) as a Date or DATETIME column, is just a string formatted to a particular ISO format, labeled as something special or unique.
 
 This article explains further How SQL Server stores data types: dates and times - Born SQL[^]
 You might want to rethink that and make sure you are using the latest version of PHP 8.Quote:I needed a consistent way of working with dates already written, so I choose the ISO120 format. ISO120 just makes it easier to fabricate new dates, and do comparisons in PHP8.
 
 I know there were some issues around creating date objects from strings, but this is the first time I've heard anyone claim it has problems with SQL dates. Your problems are probably arising from incorrectly storing the date as a string.
 
 
 Tbh that's not very big. If it was me I would bite that bullet - as long as there is nothing else using the database (including MI teams). Actually, even then I would probably still go for it.Quote:I didn't want to change the database because it has 26 gigs of data.
 
 |  |  |  | 
| 
|  | 
| 
| Just had another thought - download Sql Server Management Studio (should be free) and then you can see the database schema to find out exactly how that data is stored on your database. I interpreted your comment about date storage as being dates in general 
 |  |  |  | 
| 
|  | 
| 
| 3 bytes to store a date? Ok, I believe that.
 
 When I went into this project, I told the customer that I wasn't going to change the database design, unless it was needed. I did have to change the size of the username, wasn't large enough.
 
 I'll start rethinking the dates again.
 Thanks for debunking my date theory
   
 If it ain't broke don't fix it 
Discover my world at jkirkerx.com
 |  |  |  | 
| 
|  | 
| 
| You can see the storage size for each of the types in the documentation - for example: 
  Storage size: 3 bytes, fixed
 
 
 
 "These people looked deep within my soul and assigned me a number based on the order in which I joined."
 - Homer
 
 
 |  |  |  | 
| 
|  | 
| 
| Very helpful Richard 
 So I guess I meant ISO 8601, but I called it ISO120 which is my bad.
 YYYY-MM-DD
 
 So if that's the native format for Date stored in bytes, I guess converting SmalDateTime to 120 to just give me the date and strip off the time isn't that bad.
 
 If it ain't broke don't fix it 
Discover my world at jkirkerx.com
 |  |  |  | 
| 
|  | 
| 
| Yes it is bad. Always use the correct data type for the content. If you insist on using strings you can run into all sorts of issues with international settings 
 |  |  |  | 
| 
|  | 
| 
| Hey all, 
 there is a MSSQL table with such data,
 
 
 
categoryName        specificationValue      unitName 
Display             15.6                    inch
Display             LED, HD, Anti-glare     NULL
Processor           CORE I3                 NULL
Processor           1005G1                  NULL
Processor           1.2 UP TO 3.4           GHz
Graphics Card       INTEL                   NULL
Graphics Card       Intel UHD Graphics      NULL
System Memory       8                       GB
System Memory       DDR4                    NULL
Hard Disk           256   PCIe® NVMe™ SSD   GB 
Operating System    Windows 10 Home         NULL
Operating System    64                      bit
Optical Drive       DVD                     NULL
Physical            1.78                    kg 
 I need to get the following line (is it even possible?)
 
 
15.6inch LED, HD, Anti-glare | CORE I3 1005G1 1.2 UP TO 3.4 | INTEL Intel UHD Graphics | 8 GB DDR4 | Windows 10 Home 64bit | DVD | 1.78kg 
 To be honest, I don't really understand how to do this
 need your support
 thanks!
 
 |  |  |  | 
| 
|  | 
| 
| Depends on your version of SQL Server. If it's 2017 or later, it's relatively simple. If it's earlier, not so much.
 See here: The SQL Server Equivalent to GROUP_CONCAT()[^]
 
 "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower! 
 |  |  |  | 
| 
|  | 
| 
| thanks for fast reply! version 12 ((
 
 |  |  |  | 
| 
|  | 
| 
| I have a pipeline with a data flow that terminates in a sink that points to a linked data set (a sql server table). When I debug the pipeline, I can see that the sink data preview contains the rows I expected it to have. However, the actual sink table doesn't get populated by these rows. What am I missing? Thank you
 
 |  |  |  | 
| 
|  | 
| 
| Is there anyone here that uses the Snowflake Azure database system? If so, please contact me directly. I'm stuck. 
 |  |  |  | 
| 
|  | 
| 
| No on both counts, but have a beer on me. 
 |  |  |  | 
| 
|  | 
| 
| Must . not . make . snide . comment.Mike Ahrens wrote:Snowflake Azure database system
   
 Sorry never heard of it and would avoid it for 2 reason
 snowflake andazure. Good luck
 Never underestimate the power of human stupidity -RAH
 I'm old. I know stuff - JSOP
 
 |  |  |  | 
|  | 
| 
|  | 
| 
| The name comes from the design concept - The Data Cloud | Snowflake[^] . It's surprisingly okay. 
 The azure bit though - I'm with you on that
 
 |  |  |  | 
| 
|  | 
| 
| Yes we use Snowflake but I'm not contacting you directly. Explain what your problem is and I will try to help 
 |  |  |  | 
| 
|  | 
| 
| That goes against the idea of the website. You are asking for an employer, or an expert to consult. This is not a place to hire people. 
 Snowflake can't be that hard if it is just a shell around Azure; but you did not post a question about code - you specifically ask for someone to contact you for some vague crap.
 
 Do that again and I'll vote as abuse; here we share questions and answers. If you're looking for an expert in a specific area and do not want to disclose the question, then you in the wrong place.
 
 Bastard Programmer from Hell    
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
 |  |  |  | 
| 
|  | 
| 
| My apologies. I hadn't seen anything on it in the forum. Just wanted to find out if there was anyone using it. I resolved the question that I had, after hammering around on it for several hours. I will ask in the proper place the next time. 
 |  |  |  | 
| 
|  | 
| 
| You been regularly on this site, and you did not know we prefer questions over people recruiting? 
 Bastard Programmer from Hell    
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
 |  |  |  | 
| 
|  | 
| 
| Not quite what I had in mind. Just wanted to see if there was anyone else using it. I have used SQL Server since it was created, and ran into a weird issue. If I hadn't figured it out, I would have posted a proper question. 
 |  |  |  |