I have two scripts, both of which do the same thing. The only difference is that one has more fields (RAM, Slots RAM Counts, etc.) and the other script doesn't.
The strange thing is that in the script that has the RAM, Slots RAM Counts, etc fields, I see fewer assets compared to the script that doesn't have the RAM, Slots RAM Counts, etc fields.
Can you help me with this, please?
The idea is I need to equalize the assets counts shown in the scripts.
I mean, the correct result is making the both codes shows me all the assets, in this case 601 total assets.
I can't get why both scripts give me different assets counts if only im adding more columns, in this case: RAM Total Capacity, RAM Slots, etc.
Script with RAM slots, resulting less assets count = 539 (bad asset count, it need to be 601)
Select Top 1000000 tblassets.Username,
  tblassets.AssetID,
  tblassets.AssetName,
  tblADusers.Company,
  tblassets.Lastseen,
  tsysOS.OSname,
  tblassets.Version,
  tblassets.Processor,
  tblProcessor.MaxClockSpeed,
  tblProcessor.NumberOfCores,
  Cast(tblProcessor.L2CacheSize / 1024 As numeric) As CacheL2MB,
  tblDiskdrives.Caption As Drive,
  Cast(tblDiskdrives.Freespace / 1024 / 1024 / 1024 As numeric) As FreeGB,
  Cast(tblDiskdrives.Size / 1024 / 1024 / 1024 As numeric) As TotalSizeGB,
  tblassets.Memory As RAM_MB,
  tblassets.IPAddress,
  tblassets.Mac,
  tblAssetCustom.Manufacturer,
  tblAssetCustom.Model,
  tblBaseBoard.Product,
  tblAssetCustom.Serialnumber,
  Ceiling(tblPhysicalMemoryArray.MaxCapacity / 1024) As MaxCapacity,
  CorrectMemory.Memory,
  Cast(CorrectMemory.Used As numeric) As [Slots  used],
  tblPhysicalMemoryArray.MemoryDevices As [Slots available],
  tblPhysicalMemoryArray.MemoryDevices - CorrectMemory.Used As [Slots free]
From tblassets
  Inner Join tblDiskdrives On tblassets.AssetID = tblDiskdrives.AssetID
  Inner Join tsysOS On tsysOS.OScode = tblassets.OScode
  Inner Join tblAssetCustom On tblassets.AssetID = tblAssetCustom.AssetID
  Inner Join tblProcessor On tblassets.AssetID = tblProcessor.AssetID
  Inner Join tblADusers On tblADusers.Username = tblassets.Username
  Inner Join tblBaseBoard On tblassets.AssetID = tblBaseBoard.AssetID
  Inner Join tblPhysicalMemoryArray On
      tblassets.AssetID = tblPhysicalMemoryArray.AssetID
  Inner Join (Select tblAssets.AssetID,
      Sum(Ceiling(tblPhysicalMemory.Capacity / 1024 / 1024)) As Memory,
      Count(tblPhysicalMemory.Win32_PhysicalMemoryid) As Used
    From tblAssets
      Left Outer Join (TsysMemorytypes
      Right Outer Join tblPhysicalMemory On TsysMemorytypes.Memorytype =
          tblPhysicalMemory.MemoryType) On tblAssets.AssetID =
          tblPhysicalMemory.AssetID
    Group By tblAssets.AssetID,
      tblPhysicalMemory.MemoryType
    Having tblPhysicalMemory.MemoryType <> 11) CorrectMemory On
      CorrectMemory.AssetID = tblassets.AssetID And
      Ceiling(tblPhysicalMemoryArray.MaxCapacity / 1024) > CorrectMemory.Memory
      And Ceiling(tblPhysicalMemoryArray.MaxCapacity / 1024) >
      CorrectMemory.Memory
Where tblPhysicalMemoryArray.[Use] = 3
Order By [Slots free] Desc,
  tblassets.AssetName

Script without RAM slots, resulting more assets count = 601 (good result, but without RAM slot columns)
Select Top 1000000 tblassets.Username,
  tblassets.AssetID,
  tblassets.AssetName,
  tblADusers.Company,
  tblassets.Lastseen,
  tsysOS.OSname,
  tblassets.Version,
  tblassets.Processor,
  tblProcessor.MaxClockSpeed,
  tblProcessor.NumberOfCores,
  Cast(tblProcessor.L2CacheSize / 1024 As numeric) As CacheL2MB,
  tblDiskdrives.Caption As Drive,
  Cast(tblDiskdrives.Freespace / 1024 / 1024 / 1024 As numeric) As FreeGB,
  Cast(tblDiskdrives.Size / 1024 / 1024 / 1024 As numeric) As TotalSizeGB,
  tblassets.Memory As RAM_MB,
  tblassets.IPAddress,
  tblassets.Mac,
  tblAssetCustom.Manufacturer,
  tblAssetCustom.Model,
  tblBaseBoard.Product,
  tblAssetCustom.Serialnumber
From tblassets
  Inner Join tblDiskdrives On tblassets.AssetID = tblDiskdrives.AssetID
  Inner Join tsysOS On tsysOS.OScode = tblassets.OScode
  Inner Join tblAssetCustom On tblassets.AssetID = tblAssetCustom.AssetID
  Inner Join tblProcessor On tblassets.AssetID = tblProcessor.AssetID
  Inner Join tblADusers On tblADusers.Username = tblassets.Username
  Inner Join tblBaseBoard On tblassets.AssetID = tblBaseBoard.AssetID

hope someone can help me
cheers.